- , |
, SCADA, , SNMP-.
(* PLC_A2 *)
%QX256.0 := A2_1QF1; // 256
%QX256.1 := A2_1QF2; //
%QX256.2 := A2_QS1;
%QX256.3 := A2_QS2;
%QX256.4 := A2_3QF1;
%QX256.5 := A2_3QF2;
%QX256.6 := A2_3QF3;
%QX256.7 := A2_3QF4;
%QX256.8 := A2_3QF5;
%QX256.9 := A2_3QF6;
%QX256.10 := A2_3QF7;
%QX256.11 := A2_3QF8;
%QX256.12 := A2_3QF9;
%QX256.13 := A2_3QF10;
%QX256.14 := A2_KM1;
%QX256.15 := A2_KM2;
(* QF1 *) // 1
%QW332 := QF1_I_L1; //
%QW333 := QF1_I_L2;
%QW334 := QF1_I_L3;
%QW335 := QF1_U_L12; // ()
%QW336 := QF1_U_L23;
%QW337 := QF1_U_L31;
%QW338 := QF1_U_L1; // (-)
%QW339 := QF1_U_L2;
%QW340 := QF1_U_L3;
%QW341 := QF1_P_L1; //
%QW342 := QF1_P_L2;
%QW343 := QF1_P_L3;
%QW344 := QF1_P_Sum; // ()
%QW345 := QF1_Q_L1; //
%QW346 := QF1_Q_L2;
%QW347 := QF1_Q_L3;
%QW348 := QF1_Q_Sum; // ()
%QW349 := QF1_S_Sum; // ()
%QW350 := QF1_CosF; //
// CODESYS,
// Modbus TCP/IP. , ,
// 110-220.3
// -
PROGRAM MBCFG_subCMS_1(* generated by config one prg for each slave *)
VAR_OUTPUT
U_L1 : WORD; (**)
U_L2 : WORD; (**)
U_L3 : WORD; (**)
/*--- system variables (read only) ----------------------------------------*/
MBCFG_IpAddress : STRING(12) := 'XXX.XXX.XXX.XXX';//IP- Slave-
MBCFG_Port : UINT := 502; //,
MBCFG_UnitID : BYTE := 2; //ID Slave-
MBCFG_TimeOut : TIME := t#300ms; //
MBCFG_RequestDelay : TIME := t#1000ms; //
MBCFG_Error : MBCFG_eERROR := MBCFG_START_UP;
MBCFG_LastJob : MBCFG_typCOM_JOB;
/*-------------------------------------------------------------------------*/
END_VAR
VAR CONSTANT
zz_VARIABLECOUNT: INT := 3; (* number of variables *)
zz_JOBCOUNT : INT := 1; (* number of jobs *)
END_VAR
VAR
/*=== VARIABLE LIST =============*/
zz_VariableList : ARRAY[1..zz_VARIABLECOUNT] OF MBCFG_typVARIABLE :=
( DataType := MBCFG_TYPE_WORD,
ByteOrder := MBCFG_BYTE_ORDER_0,
BitSize := 16,
ptVar := 0,
ReadJobIndex := 1,
ReadStartBitNo := 0,
WriteJobIndex := 0,
WriteStartBitNo := 0 ),
( DataType := MBCFG_TYPE_WORD,
ByteOrder := MBCFG_BYTE_ORDER_0,
BitSize := 16,
ptVar := 0,
ReadJobIndex := 1,
ReadStartBitNo := 32,
WriteJobIndex := 0,
WriteStartBitNo := 0 ),
( DataType := MBCFG_TYPE_WORD,
ByteOrder := MBCFG_BYTE_ORDER_0,
BitSize := 16,
ptVar := 0,
ReadJobIndex := 1,
ReadStartBitNo := 64,
WriteJobIndex := 0,
WriteStartBitNo := 0
);
/*=== JOB LIST ==================*/
zz_JobList : ARRAY[1..zz_JOBCOUNT] OF MBCFG_typCOM_JOB :=
( Functioncode := 3, // , 0x03, Read Holding Registers
ReadStartAddress := 26,//
ReadQuantity := 5, //- ,
WriteStartAddress := 0,
WriteQuantity := 0,
ptReadData := 0,
ptWriteData := 0
);
zz_DataField_1_Read : ARRAY[1..5] OF WORD;
/*=== MODBUS MASTER ==============*/
zz_MBCFG_MASTER_ETH : MBCFG_MASTER_TCP;
END_VAR
/*--- for each variable -------------------------*/
zz_VariableList[1].ptVar := ADR(U_L1);
zz_VariableList[2].ptVar := ADR(U_L2);
zz_VariableList[3].ptVar := ADR(U_L3);
/*-----------------------------------------------*/
/*--- for each job -----------------------------------*/
zz_JobList[1].ptReadData := ADR(zz_DataField_1_Read);
/*----------------------------------------------------*/
/*#### START OF FIXED CODE #####################################*/
zz_MBCFG_MASTER_ETH( strIpAddress := MBCFG_IpAddress,
uiPort := MBCFG_Port,
bUnitID := MBCFG_UnitID,
tTimeOut := MBCFG_TimeOut,
iVariableCount := zz_VARIABLECOUNT,
ptVariableList := ADR(zz_VariableList),
iJobCount := zz_JOBCOUNT,
ptJobList := ADR(zz_JobList),
tRequestDelay := MBCFG_RequestDelay,
eError => MBCFG_Error,
LastJob => MBCFG_LastJob
);
%QW377 := U_L1;
%QW378 := U_L2;
%QW379 := U_L3;