Добрый день!
Приобрели пару преобразователей весоизмерительных, фирмы Тензо-М, но при покупке не обратили внимание что данные преобразователи не имеют возможности обмена по протоколу 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
Вот пример программы для опроса преобразователя, команда подается на считывание серийного номера прибора
Но в ответ ничего не приходит