Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Инициализация портов
- //Ведущий - Внутренняя сеть RS485
- ComConn2(
- enable:= TRUE,
- PortNum:= 2,
- PortBaudrate:= 115200, //9600
- PortParity:= 0,
- PortStopBits:= 1,
- PortByteSize:= 8,
- Handle=> ComHandle2,
- Done=> ,
- ErrCode=> );
- //Ведомый - Связь с ПК по RS232/RS485
- ComConn3(
- enable:= TRUE,
- PortNum:= 3,
- PortBaudrate:= 9600,
- PortParity:= 0,
- PortStopBits:= 1,
- PortByteSize:= 8,
- Handle=> ComHandle3,
- Done=> ,
- ErrCode=> );
- //Ведомый - Связь с СП270
- ComConn4(
- enable:= TRUE,
- PortNum:= 4,
- PortBaudrate:= 115200,
- PortParity:= 0,
- PortStopBits:= 1,
- PortByteSize:= 8,
- Handle=> ComHandle5,
- Done=> ,
- ErrCode=> );
- //Ведущий - Внутренняя сеть RS232/RS485
- ComConn5(
- enable:= TRUE,
- PortNum:= 5,
- PortBaudrate:= 9600,
- PortParity:= 0,
- PortStopBits:= 1,
- PortByteSize:= 8,
- Handle=> ComHandle4,
- Done=> ,
- ErrCode=> );
- //Триггер инициализации модулей ввода
- TP1(IN:= NOT TP1.Q, PT:=T#50MS, Q=> , ET=> );
- OnD(CLK:= MB_Buffer[1].0);
- IF OnD.Q THEN M:=H; END_IF;
- //SW1:=MB_Buffer[3].0;
- SW2:=MB_Buffer[3].1;
- SW3:=MB_Buffer[3].2;
- SW4:=MB_Buffer[3].3;
- IF (H>=M) AND MB_Buffer[1].0 THEN SW1:=TRUE; ELSE SW1:=FALSE; END_IF;
- CASE Master1 OF
- //Модуль дискретного вывода от МК110-8Д.4Р
- 0: MK110_4R1(
- Handle:= ComHandle2,
- Enabl:= ComConn2.Done AND (NOT TP1.Q),
- Modd:= ,
- Addr:= 15, //17
- TimeOut:= T#50MS,
- ErCL:= 3,
- out1:=SW1,
- out2:=SW2,
- out3:=SW3,
- out4:=SW4,
- wErrCode=> Err,
- done=> Cpmlt);
- IF Cpmlt THEN
- MB_Buffer[2]:=Err;
- Master1:= 1;
- IF Err=0 THEN ModuleErr:= FALSE;
- ELSE ModuleErr:= TRUE;
- END_IF;
- END_IF;
- //Модуль дискретного ввода от МК110-8Д.4Р
- 1: MV110_16D3(
- Handle:= ComHandle2,
- Enabl:= ComConn2.Done AND (NOT TP1.Q),
- Modd:= ,
- Addr:= 15, //17
- TimeOut:= T#50MS,
- ErCL:= 3,
- inp => ,
- wErrCode=> Err,
- done=> Cpmlt);
- IF Cpmlt THEN Master1:= 3;
- MB_Buffer[0]:=Err;
- IF Err=0 THEN MB_Buffer[1]:=MV110_16D3.inp;
- ELSE ModuleErr:= TRUE;
- END_IF;
- END_IF;
- 3: MV110_8a1(
- Handle:= ComHandle2,
- Enabl:= ComConn2.Done AND (NOT TP1.Q),
- Modd:= ,
- Addr:= 16,
- TimeOut:= T#50MS,
- ErCL:= 5,
- inp=> ,
- inpExcSCode=> ,
- wErrCode=> Err3,
- done=> Cpmlt);
- IF Cpmlt THEN Master1:= 0;
- Channal:=Channal + 1;
- MB_Buffer[4]:=Err3;
- IF Err3=0 THEN
- FOR J:=1 TO 8 BY 1 DO
- MB_Buffer[4+J]:=MV110_8a1.inpExcSCode[J];
- MB_Buffer[12+J]:=REAL_TO_WORD(MV110_8a1.inp[J]);
- END_FOR;
- L:= MV110_8a1.inp[2];
- a:= MV110_8a1.inp[4];
- H:=L*SIN(a);
- ELSE ModuleErr:= TRUE;
- END_IF;
- END_IF;
- END_CASE;
- //Обмен через ведомые порты
- IF ComConn3.Done THEN (*Удачно проинициализировали*)
- MB_func(
- ComHandle:=ComHandle3, (*номер COM-порта*)
- DevAddr := 8,
- pBuffer := ADR(MB_Buffer),
- BufSize := SIZEOF(MB_Buffer),
- NewData => MB_NewData3,
- Error => MB_Error3
- );
- IF MB_Error3 <> MB_OK THEN
- MB_NewData3 := FALSE;
- END_IF
- IF MB_NewData3 = TRUE THEN
- MB_Error3 := MB_OK;
- END_IF
- END_IF;
- IF ComConn4.Done THEN (*Удачно проинициализировали*)
- MB_func(
- ComHandle:=ComHandle5, (*номер COM-порта*)
- DevAddr := 1,
- pBuffer := ADR(MB_Buffer),
- BufSize := SIZEOF(MB_Buffer),
- NewData => MB_NewData4,
- Error => MB_Error4
- );
- IF MB_Error4 <> MB_OK THEN
- MB_NewData4 := FALSE;
- END_IF
- IF MB_NewData4 = TRUE THEN
- MB_Error4 := MB_OK;
- END_IF
- END_IF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement