Понадобилось тут забрать показания у ДМ5002М в цифровом виде. Оформил библиотекой — пускай здесь лежит. Сразу предупреждаю: реализовано только чтение текущего показания.
Пример использования:
Код:
PROGRAM PLC_PRG
VAR
portHandle: DWORD := 16#FFFFFFFE;
portReady: BOOL;
dtd1: TMZ_DM;
pressure: REAL;
END_VAR
VAR CONSTANT
portCfg: COMSETTINGS := (dwBaudRate := 9600);
END_VAR
IF portHandle = 16#FFFFFFFE THEN
portHandle := SysComOpen(0);
IF portHandle <> INVALID_HANDLE THEN
portReady := NOT SysComSetSettings(portHandle, ADR(portCfg));
END_IF
ELSIF portReady THEN
dtd1(
portHandle := portHandle, devAddr := 1,
start := dtd1.done OR dtd1.step = DM_X_IDLE,
convUnit := MU_Pa, value => pressure);
END_IF
Для работы требуются библиотеки Standard, SysLibCom и SysLibMem.