Добрый день!
Приобрели пару преобразователей весоизмерительных, фирмы Тензо-М, но при покупке не обратили внимание что данные преобразователи не имеют возможности обмена по протоколу Modbus. Возникла сложность в настройке обмена между программируемым контроллером и преобразователем, в частности не могу настроить обмен информацией между приборами.
Пример настройки протокола был взят с темы на форуме http://www.owen.ru/forum/showthread....D2%E5%ED%E7%EE
Но должного результата это не дало.
Суть задачи такова, необходимо просто опрашивать преобразователь, в ответ получать значение веса.
Порт инициализирован, а вот дальше не могу получить ответ на команду, скорее всего либо задание команды кривое, потому что в кодесисе в проекте имя задающей команды выглядит Я$01АУяя$, либо еще в чем то проблема...
Подскажите в какую сторону копать, либо дайте простенький пример обмена контроллера и устройства по нестандартным протоколам, а то те, которые есть в FAQе уж больно замудренные.
Вот пример программы для опроса преобразователя, команда подается на считывание серийного номера прибораКод:IF COM_SERVICE1.ready=FALSE THEN (* (com_number): 0 - RS-485 1 - RS-232 4 - RS-232 DEBUG *) com_num:=0; Settings.Port:=com_num; Settings.dwBaudRate:=115200; Settings.byParity:=0; Settings.dwTimeout:=0; Settings.byStopBits:=1; Settings.dwBufferSize:=0; Settings.dwScan:=0; COM_SERVICE1(Enable:=TRUE , Settings:=Settings , Task:=OPEN_TSK ); com_ready:=FALSE; ELSE COM_SERVICE1.Enable:=FALSE; com_ready:=TRUE; END_IF IF com_ready=TRUE THEN i:=i+1; END_IF ton1(In:=start_tmr,pt:=T#2s); start_tmr:=TRUE; tr1(clk:=ton1.Q); IF tr1.Q THEN snd_str:='$FF$01$A1$FF$FF '; SysComWrite(com_num,ADR(snd_str),LEN(snd_str),0); SZ2:=SysComRead(com_num,ADR(CM2_READ_BUF),20,6); END_IF
Но в ответ ничего не приходит


Ответить с цитированием

