Eman1982
Forum Member / Участник форума
Участник № / Member № 5619
отправлено / posted
Добрый день! Есть у меня в программе канал флоат, связанный с сигналом от модуля аналогового ввода. У этого канала есть атрибут 52,FS(стр. 168, РП Т1). 9 бит этого байта Response показывает наличие ответа от модуля. 9 бит атрибута это 1 бит 2-го байта атрибута.
Проблема в том, что при считывании программой FS считывается только первый байт атрибута FS (ErCode), 2 байт байт не считывается. Пробовал уже считывать FS в программу и как UINT и как UDINT, не получается- читается только первый байт.
отправлено / posted
В силу асинхронности потоков обмена и потоков обработки каналов и программ бит Response может формироваться и сбрасываться между основными циклами. При редких запросах этот бит ловится и программами и каналами с большей вероятностью.
О качестве обмена надежно можно судить по признаку недостоверности, выставляемому в каждом канале, связанном с внешними устройствами.
Сообщения / Posts 17335 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Eman1982
Forum Member / Участник форума
Участник № / Member № 5619
отправлено / posted
Есть атрибут недостоверность 4,I. Возможные значения- аппаратная и программная недостоверность. Аппаратная недостоверность может быть из-за отсутствия связи, обрыва сигнала (0 мА на входе модуля) и по другим причинам. Как определить, что недостоверность вызвана именно отсутствием связи с модулем?
Сообщения / Posts 45 | Из / From: Ukraine
| IP / IP: IP адрес / IP address |
отправлено / posted
Расшифровка причины появления признака аппаратной недостоверности в общем случае осуществляется диагностическими переменными(например, @Net_Code, @e_M_LINK_Host, @e_DCS, @e_MODBUS, @e_PLC1Type, @e_PLC2Type, @e_TCP_ModBus, @e_OPC), которые возвращают код ошибки, зависящий от протокола, используемого в конкретном драйвере.
Сообщения / Posts 17335 | Из / From: Россия
| IP / IP: IP адрес / IP address |