DRIVER OMRON FINS aceita string somente até 15 caracteres

Bom dia Srs

Estou tentando reproduzir o exemplo no manual da Elipse E3 o Driver OMRON FINS e não estou conseguindo reproduzir o exemplo abaixo da página 7 do manual,

Eu não estou conseguindo obter uma string de tamanho 20 como diz o manual, eu consegui somente uma string de tamanho 15

Segue fotos abaixo do problema

String Tamanho 15 Funcionou corretamente

String Tamanho 20 Não funcionou corretamente

Podem me ajudar? Desde já agradeço

Boa tarde Vitor,

Por gentileza, faça um teste forçando uma escrita direta no PLC de uma string com tamanho maior que 15 caracteres. Assim eliminamos uma provável limitação do PLC.

Se o teste funcionar, envie o log do driver para o meu e-mail.

1 Like

Bom dia @delio e desculpe por demorar bastante para responder

Foi feito o teste escrevendo uma string forçada contendo o alfabeto completo (26 caracteres) em uma memoria do CLP, segue imagem abaixo ilustrando:

Foi feito um exemplo de leitura de string utilizando uma IHM da marca weintek que utiliza o protocolo OMRON FINS TCP para leitura de dados e a IHM weintek conseguiu ler essa string completa conforme foto abaixo

Porém no driver da Elipse a primeira TAG de comunicação conseguiu ler o dado até o caractere “P”, conforme imagem abaixo:

E quando eu aumento o numero de caracteres a comunicação deixa de acontecer conforme imagem

Log do driver enviado no seu email obrigado

Modelo do CLP utilizado: OMRON CJ2M CPU33

Boa tarde @delio conseguiu algum retorno? Muito obrigado

Boa tarde Vitor,

Sim, respondi o seu e-mail no mesmo dia (22/06):

O log exibe o seguinte erro:

22/06/2021 08:46:18.289 (3874) DRIVER IOReceiveBuffer() - ERROR: Received SID greater than the sent one. [Snt: 80; Rcv: 175]
22/06/2021 08:46:18.289 (2BA8) TAG <== (0.047) Tag(0.7111.24150.18).ReadValue = ERROR (hr=80004005)

Esse erro sugere que o byte está diferente na pergunta e na resposta do driver.
Ou seja, recebeu um frame cujo identificador SID é maior que o esperado.

Outro detalhe, parece que você abriu dois drivers paralelamente quando deu esse SID errado:

22/06/2021 08:49:37.548 (3874) IO TX: 80 00 02 00 65 00 00 19 00 A4 01 01 82 5E BA 0F 00 08
22/06/2021 08:49:37.548 (2774) IO TX: 80 00 02 00 65 00 00 19 00 7A 01 01 82 0D 5C 00 00 02
22/06/2021 08:49:37.562 (2774) IO RX: C0 00 02 00 19 00 00 65 00 A4 01 01 00 00
22/06/2021 08:49:37.562 (2774) DRIVER IOReceiveBuffer() - ERROR: Received SID greater than the sent one. [Snt: 122; Rcv: 164]

Há dois TX de threads diferentes.
Por favor, ative somente um driver , apague o log gerado, crie um novo e me envie novamente.
Sempre respeitando o limite definido para a String no parâmetro N4.

1 Like

Ok muito obrigado pelo retorno o email tinha ido para a pasta de SPAM vou verificar

Att,

Bom dia @delio foi enviado o email obrigado

Bom dia @delio foi enviado o email obrigado

Desculpe pela grande demora em responder o email

Att,

Encontramos um bug no driver (v2.0.5) relacionado ao uso de strings:

No driver o parâmetro N4 está formando o byte que indica a posição de bits também para variáveis de tipo diferente de bit. Isso está incorreto, porque para essas variáveis o byte de Beginning Address Bit deve estar em zero e o PLC tolera o valor até 15.
Como o tamanho do String é indicado pelo parâmetro N4, este conteúdo é repassado ao Byte de Beginning Address Bit no frame do protocolo, e assim os valores acima de 15 causam a falha de comunicação.

Uma nova versão do driver com a correção deste problema em breve será publicada.