Спасибо, не заметил
Вид для печати
Привет.
Подскажите, зачем нужна библиотека 3sLicense ?
Я так понял, что она вставляется в другие библиотеки, которые будут платными?
Ну т.е она отвечает за лицензирование?
Добрый день.
Пытаюсь из кода программы поменять настройки СОМ-порта, который находится в режиме RTU Slave.
Делаю как здесь: https://ftp.owen.ru/CoDeSys3/11_Docu...odbus_v3.1.pdf (стр. 63)
Останавливаю компонент через Modbus_Serial_Device.xEnable, меняю настройки, запускаю.
После запуска появляется xInternalError и ErrorCode = 2.
Нигде не нашел расшифровку для Modbus_Serial_Device.ErrorCode.
При этом адрес (Slave ID) меняется на ура. Проблема возникает с изменением скорости/четности.
Есть идеи из-за чего так происходит?
Добрый день.
Из-за бага CODESYS - нельзя из кода поменять контроль четности на NONE.
Вчера как раз рассказывал об этом в видео:
https://www.youtube.com/watch?v=NZ7DJidW_EI
Добрый день. Подскажите как сделать, ни как не получается. Есть блок на СТ, переключатель выходов при каждом импульсе на вход. Хочу добавить блокировки.
Допустим первый выход заблокирован, значит нужно переключать только второй и третий выходы.
Соответственно, если в блокировке второй, то переключать только первый и третий. Если в блокировке третий, то переключать только первый и второй.
FUNCTION_BLOCK Circle
VAR_INPUT
IN: BOOL;
END_VAR
VAR_OUTPUT
OUT1, OUT2, OUT3, OUT4: BOOL; //выходы
END_VAR
VAR
axOut: ARRAY[0..3] OF BOOL;
RTrig: R_TRIG;
x, i: INT;
END_VAR
RTrig(CLK:=IN);
IF RTrig.Q THEN
x:=x+1;
IF x>=3 THEN x:=0; END_IF
FOR i:=0 TO 3 DO
axOut[i]:= FALSE;
END_FOR
axOut[x] := TRUE;
END_IF
OUT1:= axOut[1];
OUT2:= axOut[2];
OUT3:= axOut[0];
OUT4:= axOut[3];
В обработку триггера между иф и ендиф после х:=х+1 ставьте условие, например, исключаем номер 2:
Искл:= 2
Иф х=Искл зен х:=х+1 ендиф
PS исправьте еще х>=3 на х>3... Иначе 3 никогда не получите, а у вас он в выходах есть
Не проще ли переключать выходы, указанные в массиве?
И если выход в блоке, просто удалять его из массива.