Здравствуйте,Win 7 max 64 bit
Вид для печати
Попробуйте воспользоваться этой инструкцией:
https://faq.codesys.com/display/CDSF...not+be+created
Если не получится - рекомендую развернуть чистую виртуалку с Win7 и установить туда только V3 4 Patch1.
СS 3.5 Modbas RTU Master как создать канал размером 4 byte ? , поставить длину 2 не подходит создаётся два Worda . Для слэйва котороый я опрашиваю нужно именно 1 канал UDINT .
Нужно создать именно два WORD.
А дальше можно в коде сделать так:
Вложение 63420Цитата:
udiVar := wVar1 + SHL(wVar2, 16);
В зависимости от порядка регистров устройства - может потребоваться поменять wVar1 и wVar2 местами.
Также могу порекомендовать статью по преобразованию данных в CODESYS:
https://ftp.owen.ru/CoDeSys3/98_Book...nipulation.pdf
Постоянно моргает значёк на слейве то норма зеленый то красный треугольник с периодичностью появляеться надпись "Шина не запущена. Данные значения возможно не актуальны. Ситуация возникает при чтения с слайва с регистра 46266) формата UDINT. , пробовал обеднять 2 UINT ч/з
udiVar := wVar1 + SHL(wVar2, 16); и ч/з DUT , результат один. В чем может быть причина ?
Версия компилятора 3.4.0.10 ПЛК 304 ( старый )
Вложение 63427
Версия
Попробовал в ОРС от Мастер SCADA прочитать нужные регистры все читается С ПЛК 304 не хочет :(
Вложение 63433
Как правильно инициализировать переменные?
Имеются переменные на чтение и запись каналов:
Мне надо проинициализировать переменную writeVal значением из readVal, чтобы лишний раз не вводить его на этапе визуализации.Код:VAR
readVal: INT;
writeVal: INT;
xFirstStart: BOOL := TRUE;
END_VAR
Если я делаю так, то получается, что readVal ещё не прочитан из канала, и writeVal инициализируется нулём (при следующем проходе readVal уже что-то имеет). Помогите, что я делаю не так?Код:IF xFirstStart THEN
writeVal := readVal;
xFirstStart := FALSE;
END_IF
По-моему, самый простой вариант - выполнить присваивание не в первом цикле задаче, а, например, с секундной задержкой (конкретное значение задержки будет зависеть от особенностей вашего слэйва, числа каналов опроса и т.д. - подберите его опытным путем).
Спасибо, помогло.Код:VAR
readVal: INT;
writeVal: INT;
xFirstStart: BOOL;
T1: TON;
END_VAR
T1(IN := TRUE, PT := T#1S, Q => xFirstStart);
IF xFirstStart THEN
writeVal := readVal;
xFirstStart := FALSE;
END_IF