Добрый день.
дабы не плодить однотипные темы, подниму эту.
никак не получается реализовать обмен данными с помощью библиотеки UNM.
пока пытаюсь элементарно отправить некое сообщение (любое) в порт Rs-485 и принять его на ПК (в качестве преобразователя rs-485 в rs-323 icp con i-7520).
итак, сам код:
//флаг sended для того, чтобы код выполнился лишь один раз, а то на форуме были упоминания о возможном переполнении буфера.Код: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;
в конфигурации ПЛК добавлен universal network module, интерфейс rs-485, режим ascii.
в res и res2 при выполнении записывается единица, т.е. захват и освобождение порта происходят успешно.
а вот в res1 -1, и, соответственно, мое приветствие ПК не отсылается =( а ведь так хочется с ним поздороваться.
вариант с указателями тоже не получился. еще на этапе компиляции ругань о несоответствии типа и последующий облом.




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