рд╕реНрдХреИрдбрдкреА: рдЖрдИрдИрд╕реА 60870-5-104 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЬреЛрдбрд╝реЗрдВ

Scecapy рдореЗрдВ iec-104 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╣реЛрдо рдСрдЯреЛрдореЗрд╢рди рдФрд░ рдЫреЛрдЯреЗ рдЙрджреНрдпрдореЛрдВ рдореЗрдВ рд╕реНрдерд╛рдиреАрдп рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╡рд╕рд░ рдорд┐рд▓рддреЗ рд╣реИрдВред

рдпрд╣ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕реАрдЦрдирд╛ рдХрд╛рдлреА рдХрдард┐рди рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд▓рд╣рд╛рд▓ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЖрдк рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ?

рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░рдХ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ modbus рдХреЗ рд╡рд┐рдкрд░реАрдд рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реИ, рдФрд░ рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рдЪрд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓реЛрдВ рдкрд░ рд▓реЛрдб рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдЪрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╕рдордп рдЯрд┐рдХрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП modbus рдкрд░, рдЕрд▓рдЧ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд┐рд╡рд░рдг рдпрд╣рд╛рдБ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ред

рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдо рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛рдП рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕ рд╕рд╛рдЗрдЯ рд╕реЗ рд╕реА рдореЗрдВ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

рдлрд┐рд░ рджреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ iec104client рдФрд░ iec104server рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ред

рдЧреНрд░рд╛рд╣рдХ


рдЖрдИрдИрд╕реА 60870-5-104 рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, iec104client рдЙрдкрдпреЛрдЧрд┐рддрд╛ рджрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдмрдВрдз рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╢реБрд░реВ рдореЗрдВ рдХрдорд╛рдВрдб (20) рдХрд╛ рдЧрдарди рд╣реЛрддрд╛ рд╣реИ - рд╕рд╛рдорд╛рдиреНрдп рд╕рд░реНрд╡реЗрдХреНрд╖рдг (рдкреВрдЫрддрд╛рдЫ рдХреЗ рдмрд╛рдж рдкреВрдЫрддрд╛рдЫ) рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг, рдФрд░ рддрдм рдЪрд░реЛрдВ рдХреЗ рдорд╛рди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫрд┐рдЯрдкреБрдЯ рддрдХрдиреАрдХ рд╣реЛрддреА рд╣реИред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХреЗ рдиреБрдХрд╕рд╛рди рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, iec104client рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЕрдкрдиреЗ рдЖрдк рдкрд░ рдПрдХ рд╕рдВрдЪрд╛рд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧреАред рд╕рдВрдЪрд╛рд░ рд╕рддреНрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рд╕рдореВрд╣ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдЯреАрдо (20) рдХреЛ рдкрд╣рд▓реЗ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЫрд┐рдЯрдкреБрдЯ рд░рд┐рд╕реЗрдкреНрд╢рдиред

рд╕рдорд░реНрдерд┐рдд ASDUs:

рдЕрд╕рддрдд рдорд╛рди:

  • <36> M_SP_TB_1 - рдПрдХ рд╕рдордп рдЯрд┐рдХрдЯ CP56Time2a рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдЧрд▓рдЯрди рдЬрд╛рдирдХрд╛рд░реА
  • <1> M_SP_NA_1 - рд╕рд┐рдВрдЧрд▓рдЯрди рдЬрд╛рдирдХрд╛рд░реА
рдПрдирд╛рд▓реЙрдЧ рд╡реИрд▓реНрдпреВ:
  • <13> M_ME_NC - рдПрдХ рд╕рдордп рдЯрд┐рдХрдЯ рдХреЗ рдмрд┐рдирд╛ рдорд╛рдкрд╛ рдореВрд▓реНрдп, рд▓рдШреБ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рд╛рд░реВрдкред
  • <36> M_ME_TF_1 - рд╕рдордп рд╕реНрдЯрд╛рдореНрдк CP56Time2a рдХреЗ рд╕рд╛рде рдорд╛рдкрд╛ рдЧрдпрд╛ рдорд╛рди, рд▓рдШреБ рдлрд╝реНрд▓реЛрдЯрд┐рдВрдЧ-рдкреЙрдЗрдВрдЯ рдкреНрд░рд╛рд░реВрдкред
  • <11> M_ME_NB_1 - рдорд╛рдкрд╛ рдореВрд▓реНрдп, рдорд╛рдкрд┐рдд рдореВрд▓реНрдп

рд╕реНрд░реЛрдд рдкрд╛рда рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

static bool asduReceivedHandler (void* parameter, int address, CS101_ASDU asdu). 

рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреА рд╕рднреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЗрд╕рдореЗрдВ рд╣реЛрддреА рд╣реИред

рдЖрдк рдмрд╕ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ

  printf("REC type: %s(%i) elements: %i\n", TypeID_toString(CS101_ASDU_getTypeID(asdu)), CS101_ASDU_getTypeID(asdu), CS101_ASDU_getNumberOfElements(asdu)); 

рдФрд░ рдлрд┐рд░ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирдЬрд╝рд░ рд░рдЦреЗрдВ рдХрд┐ рдХреМрди рд╕рд╛ рдбреЗрдЯрд╛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЫрд╡рд┐

рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред

рдЕрд╕рддрдд рдпрд╛ рдПрдирд╛рд▓реЙрдЧ рд╕рд┐рдЧреНрдирд▓ рдХрд╛ рд╕реНрдЯреЗрдЯрд╕ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, json udp рдкреИрдХреЗрдЯ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕рд░реНрд╡рд░ рдпрд╛ рдЕрдиреНрдп рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ (рд╣рдо json рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ) рдХреЛ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкреИрдХреЗрдЬ рдкреНрд░рд╛рд░реВрдк рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ: {"рдирд╛рдо": "myvar", "рдбреЗрдЯрд╛": [220.001]}

рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдкреИрдХреЗрдЯ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

Iec104client рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓
[
{ "Client":
{ "UdpPort" :"64000", -- UDP
"UdpIp" :"127.0.0.1", -- IP UDP
"Iec104Port":"2404", -- 104 ( )
"Iec104Ip" :"192.168.0.105", -- IP 104
"Debug" :"1", -- (1 3)
"TimeSync" :"1" -- (1 0)
}
}
,
{ "MeasureValue": --
{
"VarName" : "WaterTemp", --
"IecAddress": "8001", --
"Alias" : " ", --
"VarType" : "int32" --
//int тАУ int 2
//int32 тАУ 4 ( float)
//float тАУ
//
}
}
,
{ "SinglePoint": --
{
"VarName" : "EngineOnOff", --
"IecAddress": "4001", --
"Alias" : " ", --
"VarType" : "bool" --
}
}
]


рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рд╕рд░реНрд╡рд░ рд╕реЗ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЙрджрд╛рд╣рд░рдг, рдореЛрдбрдмрд╕ рдЖрд░рдЯреАрдпреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд░рдкреАрдП рд╕реАрд░рд┐рдпрд╕ 3-рдПрд▓рд╡реА -03 рд╕реЗ рдкреВрдЫрддрд╛рдЫред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдзрд╛рд░рд╛рдУрдВ рдФрд░ рд╡реЛрд▓реНрдЯреЗрдЬ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╛рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрд╕рдбреАрдПрдбрдмреНрд▓реВрдП рдХреЗ рд╕реНрдХрд╛рдбрд╛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддреА рд╣реИред

110 рдХреЗрд╡реА рд╕рдмрд╕реНрдЯреЗрд╢рди
[
{ "Client":
{ "UdpPort" :"64000",
"UdpIp" :"0.0.0.0",
"Iec104Port":"2404",
"Iec104Ip" :"...",
"Debug" :"1",
"TimeSync" :"0"
}
}
,
{ "SinglePoint":
{
"VarName" : "alarm",
"IecAddress": "681",
"Alias" : "alarm",
"VarType" : "bool"
}
}
,
{ "MeasureValue":
{
"VarName" : "Ia",
"IecAddress": "372",
"Alias" : "-- Ia --",
"VarType" : "float"
}
}
,
{ "MeasureValue":
{
"VarName" : "Ib",
"IecAddress": "373",
"Alias" : "-- Ib --",
"VarType" : "float"
}
}
,
{ "MeasureValue":
{
"VarName" : "Ic",
"IecAddress": "374",
"Alias" : "-- Ic --",
"VarType" : "float"
}
}

,
{ "MeasureValue":
{
"VarName" : "Uab",
"IecAddress": "369",
"Alias" : "-- Uab --",
"VarType" : "float"
}
}

,
{ "MeasureValue":
{
"VarName" : "Ubc",
"IecAddress": "370",
"Alias" : "-- Ubc --",
"VarType" : "float"
}
}
,
{ "MeasureValue":
{
"VarName" : "Uca",
"IecAddress": "371",
"Alias" : "-- Uca --",
"VarType" : "float"
}
}

]


рд╕рд░реНрд╡рд░


рдЖрдИрдИрд╕реА 60870-5-104 рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, iec104server рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдПрдХ udp рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдмрдирд╛рдП рд░рдЦрддреА рд╣реИ рдФрд░ рдЬрдм рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

Iec104server рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:

рд╕рд░реНрд╡рд░ рд╕реЗрдЯрдЕрдк
[
{ "Server":
{ "UdpPort" :"64002",
"UdpIp" :"127.0.0.1",
"Iec104Port":"2404",
"Iec104Ip" :"192.168.0.103",
"Debug" :"1"
}
}
,
{ "MeasureValue":
{
"VarName" : "WaterTemp",
"IecAddress" : "8001",
"OffSet" : "0", -- (0тАУ ) [100,200,300,400]
"ByteCount" : "2", -- (1,2)
"ByteSequence": "12",-- (1,12,21)
"Koef" : "1", --
"VarType" : "int" тАУ
}
}
,
{ "SinglePoint":
{
"VarName" : "EngineOnOff",
"IecAddress" : "4001",
"OffSet" : "0",
"ByteCount" : "1", --
"ByteSequence": "1", --
"VarType" : "bool"
}
}
]


рдЫрд╡рд┐

рд╕рдВрдХрд▓рди


рд╡рд┐рдВрдбреЛрдЬ:

рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, msys2-i686-20180531 рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЖрдкрдХреЛ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, C: рдбреНрд░рд╛рдЗрд╡ рдкрд░, рдЖрдкрдХреЛ C: \ msys32 рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ msys2_shell.cmd рдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдПрдХ рдХрдВрд╕реЛрд▓ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЕрдм рд▓рд┐рдирдХреНрд╕ рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

 pacman тАУS make pacman тАУS gcc 

рдЕрдм рдЖрдкрдХреЛ рд╕рдВрдХрд▓рди рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рдо рдпрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВ, рд╕рдВрдЧреНрд░рд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, lib60870-C рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ c: \ msys32 рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред

Msys рдХрдВрд╕реЛрд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рд╣рдо lib60870 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

 cd /lib60870-C make clean make 

рдЫрд╡рд┐

рдЕрдм рдХрд░рддреЗ рд╣реИрдВ

 cd scadapy104 

рд╣рдо рд╕рд░реНрд╡рд░ рдХреА рдЕрд╕реЗрдВрдмрд▓реА рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 gcc -g -g -o ./bin/iec104server.exe iec104server.c ./parson/parson.c -I../src/inc/api -I../src/hal/inc -I../src/tls -I./parson ../build/lib60870.a тАУlpthread 

рдЫрд╡рд┐

рд╣рдо рдЧреНрд░рд╛рд╣рдХ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 gcc -g -g -o ./bin/iec104client.exe iec104client.c ./parson/parson.c -I../src/inc/api -I../src/hal/inc -I../src/tls -I./parson ../build/lib60870.a -lpthread 

рдЫрд╡рд┐

рдлрд╝реЛрд▓реНрдбрд░ C:\msys32\lib60870-C\scadapy104\bin рджреЛ рдлрд╛рдЗрд▓реЗрдВ iec104client.exe рдФрд░ iec104server.exe рд╣реЛрдВрдЧреАред

рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдкрд░ 7.8 dll рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА
рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдЕрдиреНрдп рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреАред

рдЕрдм, рдпрджрд┐ рдЖрдк рдЗрди рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рд╕рд╣рд╛рдпрддрд╛ рд╕рдВрдХреЗрдд рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

linux:

рдпрджрд┐ рдЖрдк рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЬреАрд╕реАрд╕реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдкреИрдХреЗрдЬ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ (рдЙрдмрдВрдЯреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ):
$ sudo рдЙрдкрдпреБрдХреНрдд рд╕реНрдерд╛рдкрд┐рдд рдЖрд╡рд╢реНрдпрдХ
рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ "рд╕реНрдХреИрдбрдкреА рдХреНрд░рд┐рдПрдЯрд░" рдореЗрдВ рдмрдирд╛рдпрд╛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП:

рдЫрд╡рд┐

рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП:

рдЫрд╡рд┐

рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдпрд╣рд╛рдВ рд╣реИрдВред

Source: https://habr.com/ru/post/hi418167/


All Articles