Все получилось!
Все получилось!
Здравствуйте всем!
Никто не подскажет мне, как будет выглядеть "записать в канал команду 00FF?" Необходимо подключить к ПЛК110 4 модуля тензодатчиков Seneca Z-CG. Чтобы как-то увеличить быстродействие, предполагаю в разных шагах цикла программы орпашивать только соответствующие датчики. Это можно сделать?
Спасибо
Я бы сделал так как во вложении. Показано и для протокола овен и модбас.
Пишиш в переменную 255 и опрос останавливается :-)
Автоматизация Диспетчеризация Сервис
e-mail: ads-kaluga@mail.ru
Благодарю!
Я делал так:
2 слэйва (для примера). Можете добавить нужное количество. Мастером опрашивается только тот(те), который(е) "в работе", т.е. подключены и связь с ними установлена.
С остальными раз в секунду проверяется "контакт".
(*Конфигурация*)
LastAddress: DWORD;
LastError: WORD;
Command1:BYTE; (*1-ый девайс, Address1, Work mode:By command*)
Command2:BYTE; (*2-ой девайс, Address2, Work mode:By command*)
(*POU*)
VAR
LastError1, LastError2: WORD;
Timer1, Timer2:TON;
Pause:TIME:=t#1s;
END_VAR
CASE LastAddress OF
1: LastError1:=LastError;
2: LastError2:=LastError;
END_CASE
IF LastError1=0 THEN Command1:=255;
ELSIF LasrError1<>0 THEN Timer1(IN:=Command1=0,PT:=Pause);
IF Timer1.Q THEN Timer1(IN:=FALSE); Command1:=255; END_IF
IF LastAddress=1 THEN
IF LastError=0 THEN LastError1:=0; END_IF
END_IF
ELSE Command1:=254;
END_IF
IF LastError2=0 THEN Command2:=255;
ELSIF LasrError2<>0 THEN Timer2(IN:=Command2=0,PT:=Pause);
IF Timer2.Q THEN Timer2(IN:=FALSE); Command2:=255; END_IF
IF LastAddress=2 THEN
IF LastError=0 THEN LastError2:=0; END_IF
END_IF
ELSE Command2:=254;
END_IF
P.S. Думаю, можно сделать код более "компактным". Но писалось в спешке, однако уже пару лет работает. Удачи!