Здравствуйте не могли бы вы мне помочь освоить UNM библиотеку. А конкретно теорию я как бы знаю хотелось бы примерчик самый элементарный например опрос дискретного модуля любого регистра и получение ответа.
Здравствуйте не могли бы вы мне помочь освоить UNM библиотеку. А конкретно теорию я как бы знаю хотелось бы примерчик самый элементарный например опрос дискретного модуля любого регистра и получение ответа.
Последний раз редактировалось Fudz; 27.09.2012 в 11:12.
Пример есть, надо лишь поискать
http://www.owen.ru/forum/showthread.php?t=551&page=7
Да спс посмотрел тяжеловато разобраться. Попытался написать элементарную отправку запроса пример ниже:
IF OUT1 <> 1 THEN
LockDevice(0);
END_IF;
IF SWICH THEN
OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
END_IF;
Но при запуске программы и включении Swich ПЛК автоматически перезагружается. В чем проблема подскажите пожалуйста.
да я знаю что все в 16 системе crc посчитал по калькулятору. Сделал как вы сказали все ровно что-то не то:
IF OUT1 <> 1 THEN
LockDevice(0);
END_IF;
IF SWICH THEN
OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
IF SWICH=TRUE THEN SWICH:=FALSE; END_IF;
END_IF;
может у меня запрос не правильный. ПЛК110 и один дискретный модуль.
$10 = 16 dec адрес дискретного модуля
$03 = 03 dec read holding registers
дальше адрес и количество регистров и CRC
из-за ошибок в запросах, перегрузки плк не бывает.
В приведенном Вами примере кроме SWICH, такая же картина и с OUT1, постоянно пытаетесь занять порт, которому и одного раза хватает
Ну и как бы надо устранять избыточность кода, можно и так написатьглавное чтоб SWICH в программе один раз в ИСТИНУ ставили, а то теряется смысл в присвоении ей ФАЛЬШИIF SWICH THEN
OUT2:=SetByte(0, '$10$03$00$01$24$35', 6);
SWICH:=FALSE;
END_IF;
ЗЫ Вы же просили пример и почему им не воспользуетесь, не составите свой код аналогично?
Последний раз редактировалось capzap; 28.09.2012 в 22:29.