Добрый день.
дабы не плодить однотипные темы, подниму эту.
никак не получается реализовать обмен данными с помощью библиотеки UNM.
пока пытаюсь элементарно отправить некое сообщение (любое) в порт Rs-485 и принять его на ПК (в качестве преобразователя rs-485 в rs-323 icp con i-7520).
итак, сам код:
Код:
FUNCTION_BLOCK unmPort1
VAR_INPUT
disable: BOOL;
END_VAR
VAR_OUTPUT
END_VAR
VAR
res: DWORD;
res1:INT;
res2: DWORD;
sended: BOOL := FALSE;
END_VAR
IF NOT disable AND NOT sended THEN
res:=LockDevice(0);
res1:=DWORD_TO_INT(SetByte(0, 'hello', 5));
sended:=TRUE;
res2:=ReleaseDevice(0);
END_IF;
//флаг sended для того, чтобы код выполнился лишь один раз, а то на форуме были упоминания о возможном переполнении буфера.
в конфигурации ПЛК добавлен universal network module, интерфейс rs-485, режим ascii.
в res и res2 при выполнении записывается единица, т.е. захват и освобождение порта происходят успешно.
а вот в res1 -1, и, соответственно, мое приветствие ПК не отсылается =( а ведь так хочется с ним поздороваться.
вариант с указателями тоже не получился. еще на этапе компиляции ругань о несоответствии типа и последующий облом.