IEC 60870-5-104是电力变电站数据采集和控制的常用协议。基于Qt5实现104规约的client。
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21153 2016-04-22 10:21 IEC104dtr.h
文件 151864 2018-11-14 17:43 IEC104debugiec104_class.o
文件 151954 2018-11-14 17:43 IEC104debuglogmsg.o
文件 552190 2018-11-14 17:43 IEC104debugmain.o
文件 896540 2018-11-14 17:43 IEC104debugmainwindow.o
文件 6726 2018-11-14 17:43 IEC104debugmoc_mainwindow.cpp
文件 541301 2018-11-14 17:43 IEC104debugmoc_mainwindow.o
文件 9895 2018-11-14 17:43 IEC104debugmoc_predefs.h
文件 10302 2018-11-14 17:43 IEC104debugmoc_qiec104.cpp
文件 403661 2018-11-14 17:43 IEC104debugmoc_qiec104.o
文件 386729 2018-11-14 17:43 IEC104debugqiec104.o
文件 2821766 2018-11-14 17:43 IEC104debugQTester104.exe
文件 2279 2016-04-22 10:21 IEC104iec104.h
文件 486 2016-04-22 10:21 IEC104IEC104.pro
文件 23765 2018-11-14 18:04 IEC104IEC104.pro.user
文件 7931 2018-11-14 17:42 IEC104IEC104.pro.user.2.1pre1
文件 52929 2018-11-14 17:50 IEC104iec104_class.cpp
文件 9420 2016-04-22 10:21 IEC104iec104_class.h
文件 14697 2016-04-22 10:21 IEC104iec104_types.h
文件 35141 2016-04-22 10:21 IEC104LICENSE
文件 3280 2016-04-22 10:21 IEC104logmsg.cpp
文件 2121 2016-04-22 10:21 IEC104logmsg.h
文件 183 2018-11-14 17:50 IEC104main.cpp
文件 29920 2018-11-14 17:50 IEC104mainwindow.cpp
文件 4634 2016-04-22 10:21 IEC104mainwindow.h
文件 7230 2016-04-22 10:21 IEC104mainwindow.ui
文件 29361 2018-11-14 17:43 IEC104Makefile
文件 68188 2018-11-14 17:43 IEC104Makefile.Debug
文件 68318 2018-11-14 17:43 IEC104Makefile.Release
文件 4574 2016-04-22 10:21 IEC104qiec104.cpp
............此处省略11个文件信息
#include
#include
#include
#include
#include
#include “iec104_class.h“
using namespace std;
iec104_class::iec104_class()
{
strncpy( slaveIP ““ 20 );
Port = 2404;
msg_supervisory = true;
seq_order_check = true;
connectedTCP = false;
tout_startdtact = -1;
tout_supervisory = -1;
tout_testfr = -1;
tout_gi = -1;
VS = 0;
VR = 0;
TxOk = false;
masterAddress = 0;
slaveAddress = 0;
GIobjectCnt = 0;
}
void iec104_class::disableSequenceOrderCheck()
{
seq_order_check = false;
}
int iec104_class::getPortTCP()
{
return Port;
}
void iec104_class::setPortTCP( unsigned port )
{
Port = port;
}
void iec104_class::setSecondaryIP(char * ip)
{
strncpy( slaveIP ip 20 );
}
char * iec104_class::getSecondaryIP()
{
return slaveIP;
}
void iec104_class::setSecondaryAddress(int addr)
{
slaveAddress = addr;
}
int iec104_class::getSecondaryAddress()
{
return slaveAddress;
}
void iec104_class::setPrimaryAddress(int addr)
{
masterAddress = addr;
}
int iec104_class::getPrimaryAddress()
{
return masterAddress;
}
void iec104_class::onConnectTCP()
{
connectedTCP = true;
TxOk = false;
VS = 0;
VR = 0;
mLog.pushMsg(“*** TCP CONNECT!“);
sendStartDTACT();
}
void iec104_class::onDisconnectTCP()
{
connectedTCP = false;
tout_startdtact = -1;
tout_supervisory = -1;
tout_gi = -1;
TxOk = false;
mLog.pushMsg(“*** TCP DISCONNECT!“);
}
void iec104_class::onTimerSecond()
{
iec_apdu apdu;
static unsigned int cnts = 1;
cnts++;
if ( ! (cnts % 5) )
if ( !connectedTCP )
connectTCP();
if (connectedTCP)
{
if ( tout_startdtact > 0 )
tout_startdtact--;
if ( tout_startdtact==0 ) // timeout of startdtact: retry
sendStartDTACT();
if ( tout_gi > 0 )
{
tout_gi--;
if ( tout_gi == 0 )
solicitGI();
}
if (msg_supervisory)
{
if (tout_supervisory > 0)
tout_supervisory--;
if (tout_supervisory > 0)
tout_supervisory--;
if (tout_supervisory == 0)
{
tout_supervisory = -1;
sendSupervisory();
}
}
}
// if connected and no data received send TESTFRACT
if ( connectedTCP && TxOk )
{
if ( tout_testfr > 0 )
{
tout_testfr--;
if ( tout_testfr == 0 )
{
apdu.start = START;
apdu.length = 4;
apdu.NS = TESTFRACT;
apdu.NR = 0;
sendTCP((char *)&apdu 6);
mLog.pushMsg(“<-- TESTFRACT“);
}
}
}
}
void iec104_class::solicitGI()
{
iec_apdu wapdu;
wapdu.start = START;
wapdu.length = 0x0E;
wapdu.NS = VS;
wapdu.NR = VR;
wapdu.asduh.type = INTERROGATION;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 21153 2016-04-22 10:21 IEC104dtr.h
文件 151864 2018-11-14 17:43 IEC104debugiec104_class.o
文件 151954 2018-11-14 17:43 IEC104debuglogmsg.o
文件 552190 2018-11-14 17:43 IEC104debugmain.o
文件 896540 2018-11-14 17:43 IEC104debugmainwindow.o
文件 6726 2018-11-14 17:43 IEC104debugmoc_mainwindow.cpp
文件 541301 2018-11-14 17:43 IEC104debugmoc_mainwindow.o
文件 9895 2018-11-14 17:43 IEC104debugmoc_predefs.h
文件 10302 2018-11-14 17:43 IEC104debugmoc_qiec104.cpp
文件 403661 2018-11-14 17:43 IEC104debugmoc_qiec104.o
文件 386729 2018-11-14 17:43 IEC104debugqiec104.o
文件 2821766 2018-11-14 17:43 IEC104debugQTester104.exe
文件 2279 2016-04-22 10:21 IEC104iec104.h
文件 486 2016-04-22 10:21 IEC104IEC104.pro
文件 23765 2018-11-14 18:04 IEC104IEC104.pro.user
文件 7931 2018-11-14 17:42 IEC104IEC104.pro.user.2.1pre1
文件 52929 2018-11-14 17:50 IEC104iec104_class.cpp
文件 9420 2016-04-22 10:21 IEC104iec104_class.h
文件 14697 2016-04-22 10:21 IEC104iec104_types.h
文件 35141 2016-04-22 10:21 IEC104LICENSE
文件 3280 2016-04-22 10:21 IEC104logmsg.cpp
文件 2121 2016-04-22 10:21 IEC104logmsg.h
文件 183 2018-11-14 17:50 IEC104main.cpp
文件 29920 2018-11-14 17:50 IEC104mainwindow.cpp
文件 4634 2016-04-22 10:21 IEC104mainwindow.h
文件 7230 2016-04-22 10:21 IEC104mainwindow.ui
文件 29361 2018-11-14 17:43 IEC104Makefile
文件 68188 2018-11-14 17:43 IEC104Makefile.Debug
文件 68318 2018-11-14 17:43 IEC104Makefile.Release
文件 4574 2016-04-22 10:21 IEC104qiec104.cpp
............此处省略11个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)