PDA

Просмотр полной версии : ПЛК308 тип REAL в Codesys 3



Knive87
17.01.2016, 18:48
Доброго времени суток. Недавно перешел с Codesys 2.3 на Codesys 3. Работаю с ПЛК308. В версии 2.3 можео было выбрать нужный тип переменной, будь то String, Real, Word и т.д. В Codesys 3, используя стандартные библиотеки ч/з Add device, обнаружил что доступен только тип Word и BOOL. Может мне кто-нибудь объяснить, как работать с остальными типами? Нужно использовать стандартные библиотеки Modbus, через добавление библиотек и писать программу. Может у кого-нибудь есть примеры?

Филоненко Владислав
18.01.2016, 18:44
Тут надо ручками, копировать побайтно в соотв. переменную.

murdemon
18.01.2016, 20:06
как то так

FUNCTION REAL_CONV : REAL
VAR_INPUT
ptr_Real : POINTER TO REAL;
END_VAR
VAR
rl: REAL;
tmp1: WORD;
ptr_Arr: POINTER TO ARRAY [0..1] OF WORD;
END_VAR

ptr_Arr := ptr_Real;
tmp1 := ptr_Arr^[1];
ptr_Arr^[1] := ptr_Arr^[0];
ptr_Arr^[0] := tmp1;
rl := ptr_Real^;
REAL_CONV := rl;

На MODBUS делаешь 2 слова читать в конфиге
забиваешь туда AI1_R_F

AI1: REAL;
AI1_R_F: ARRAY [0..1] OF WORD;

и в программе потом
AI1 := REAL_CONV(ADR(AI1_R_F));

Валенок
18.01.2016, 21:10
Этож 3й кдс .. Есть union, и функций не нужно.

Knive87
20.01.2016, 10:04
Этож 3й кдс .. Есть union, и функций не нужно.
А можно по-подробнее?

Кстати, к-то-нибудь с ПЛК308 работал? Писал программу для работы с библиотеками ModbusComSerial (Slave)? Никак не могу запустить, пишет в статусе No driver device.