1

Опрос МВА 8 ПЛК с программной средой CoDeSys 3.5

Пример на языке ST реализует работу по интерфейсу RS-485: чтение 8 входов из прибора МВА8 с адресом 16. Для работы примера в PLC Configuration должны быть подключены библиотеки SisLibCom, OwenNet, ComService.

PROGRAM PLC_PRG

VAR

get_fl_owen:OWEN_GET_REAL; (*Чтение параметра типа Real*)

COM_SERVICE1: COM_SERVICE;

cmpl: BOOL; (* признак завершения операции *)

err: INT; (*номер ошибки*)

port_opened: BYTE := 0; (*состояние порта*)

Settings: COMSETTINGS;(* настройки последовательного порта *)

com_num: PORTS:=0 (*0 — RS-485, 1 — RS-232*);

TimeOut: TIME:=T#50ms;(*таймаут*)

Enabl: BOOL:=TRUE; (*состояние работы блока*)

wTime: WORD; (*значение времени для измери-теля*)

A: REAL; (*считанное значение*)

addres: INT:=16; (*адрес МВА8*)

B: ARRAY [0..7] OF REAL; (*массив для хранения значений входов МВА8*)

i: INT; (*номер входа МВА**)

END_VAR

(*Устанавливаем настройки COM-порта*)

IF port_opened=0 THEN

Settings.Port:=com_num; (*номер COM-порта*)

Settings.dwBaudRate:=115200; (*скорость*)

Settings.byParity:=0;

Settings.dwTimeout:=0;

Settings.byStopBits:=0;

Settings.dwBufferSize:=0;

Settings.dwScan:=0;

END_IF

COM_SERVICE1(Enable:=(port_opened=0) , Settings:=Settings , Task:=OPEN_TSK );

(*Если COM-порт открыт, то переходим к приему и передачи данных *)

IF COM_SERVICE1.ready THEN

port_opened:=2;

END_IF

IF port_opened=2 THEN (*Удачно проинициализировали*)

(*чтение 8 входов из прибора МВА8 с адресом 16 *)

get_fl_owen(

Enable:=Enabl , (* разрешение работы блока *)

Addr:=addres , (*адрес прибора*)

AddrLen:=A8BIT , (*длина адреса*)

Name:=’read’ , (*имя параметра, значение которого считываем*)

Index:=65535 , (*индекс параметра*)

RealType:=FLOAT32T , (*тип параметра, значение которого считываем*)

ComHandle:= Settings.Port, (*номер COM-порта*)

TimeOut:=TimeOut , (*Таймаут T#50ms*)

Complete=>cmpl , (* скопировать признак завершения операции *)

Value=>a , (*считанное значение*)

wTime=>wTime , (*значение времени для измерителя*)

Error=> err ); (* скопировать регистр ошибок *)

(*если установлен признак завершения операции, то *)

IF Enabl = FALSE THEN

Enabl := TRUE;

END_IF

(*Если завершен обмен и нет ошибок*)

IF cmpl THEN

IF (err=0) THEN

B[i]:=a; (*присваиваем массиву значение на входе*)

ELSE

Enabl := FALSE;

END_IF;

i:=i+1; (*увеличиваем номер входа*)

addres:=16+i; (*увеличиваем адрес*)

IF (i=8) THEN (*если номер входа меньше 8*)

addres:=16;

i:=0;

END_IF

END_IF

END_IF

Раздел: CDS3 Метки: , ,

1 комметарий к "Опрос МВА 8 ПЛК с программной средой CoDeSys 3.5"

  1. Анатолий:

    при присвоении параметру com_num значения 0 то в онлайне пишет значение инвалид команд, если убрать присвоение то com1 это так и должно быть?
    и где взять индекс считываемого параметра?

Оставить комментарий

Отправить сообщение

CoDeSys GSM/GPRS модем Lectus OPC MasterSCADA Modbus MX110 Omron OPC-сервер owen OWEN Easy Logic owen logic PLC Configuration PROFIBUS s-200 SCADA scada системы siemens siemens plc SIMATIC Simplight SMS step7 TRACE MODE Динамизация ИП-320 ОВЕН ОВЕН ПЛК ОВЕН ПЧВ ПЛК ПЛК ОВЕН ПР 110 Панель оператора Программируемое реле Частотный преобразователь библиотека в CoDeSys визуализация диспетчеризация конфигурация панели программирование ПЛК серия NS сименс плк частотник частотное управление язык CFC язык ST
.