424 lines
19 KiB
C
424 lines
19 KiB
C
![]() |
#ifndef _ZJD_IEC_101_104_LIB_H_
|
|||
|
#define _ZJD_IEC_101_104_LIB_H_
|
|||
|
|
|||
|
//define for iec101 and iec104
|
|||
|
#define M_SP_NA_1 1 //单点遥信
|
|||
|
#define M_SP_TA_1 2 //带时标的单点遥信
|
|||
|
#define M_DP_NA_1 3 //双点遥信
|
|||
|
#define M_DP_TA_1 4 //带时标的双点遥信
|
|||
|
#define M_ST_NA_1 5 //步位信息
|
|||
|
#define M_ST_TA_1 6 //带时标的步位信息
|
|||
|
#define M_BO_NA_1 7 //32比特串
|
|||
|
#define M_BO_TA_1 8 //带时标的32比特串
|
|||
|
#define M_ME_NA_1 9 //测量值,归一化值
|
|||
|
#define M_ME_TA_1 10 //带时标的遥测量,归一化值
|
|||
|
#define M_ME_NB_1 11 //测量值,标度化值
|
|||
|
#define M_ME_TB_1 12 //带时标的遥测量,标度化值
|
|||
|
#define M_ME_NC_1 13 //测量值,短浮点数
|
|||
|
#define M_ME_TC_1 14 //带时标的遥测量值,短浮点数
|
|||
|
#define M_IT_NA_1 15 //累积量
|
|||
|
#define M_IT_TA_1 16 //带时标的累计量
|
|||
|
#define M_EP_TA_1 17 //带时标的继电保护设备事件
|
|||
|
#define M_EP_TB_1 18 //带时标的继电保护设备成组启动事件
|
|||
|
#define M_EP_TC_1 19 //带时标的继电保护设备成组输出电路信息
|
|||
|
#define M_PS_NA_1 20 //带变为检出的成组单点信息
|
|||
|
#define M_ME_ND_1 21 //测量值,不带品质描述的归一化测量值
|
|||
|
#define M_SP_TB_1 30 //带CP56Time2a时标的单点信息
|
|||
|
#define M_DP_TB_1 31 //带CP56Time2a时标的双点信息
|
|||
|
#define M_ST_TB_1 32 //带CP56Time2a时标的步位置信息
|
|||
|
#define M_BO_TB_1 33 //带CP56Time2a时标的32比特串
|
|||
|
#define M_ME_TD_1 34 //带CP56Time2a时标的遥测量值,归一化值
|
|||
|
#define M_ME_TE_1 35 //带CP56Time2a时标的遥测量值,标度化值
|
|||
|
#define M_ME_TF_1 36 //带CP56Time2a时标的遥测量值,短浮点数
|
|||
|
#define M_IT_TB_1 37 //带CP56Time2a时标的累计量
|
|||
|
#define M_EP_TD_1 38 //带CP56Time2a时标的继电保护设备事件
|
|||
|
#define M_EP_TE_1 39 //带CP56Time2a时标的继电保护设备成组启动事件
|
|||
|
#define M_EP_TF_1 40 //带CP56Time2a时标的继电保护设备成组输出电路信息
|
|||
|
#define M_EI_NA_1 70 //初始化结束
|
|||
|
|
|||
|
#define C_SC_NA_1 45 //单点令
|
|||
|
#define C_DC_NA_1 46 //双点令
|
|||
|
#define C_RC_NA_1 47 //步调节命令
|
|||
|
#define C_SE_NA_1 48 //设定值命令,归一化值
|
|||
|
#define C_SE_NB_1 49 //设定值命令,标度化值
|
|||
|
#define C_SE_NC_1 50 //设定值命令,短浮点数
|
|||
|
#define C_BO_NA_1 51 //32比特串
|
|||
|
#define C_SC_TA_1 58
|
|||
|
#define C_DC_TA_1 59
|
|||
|
#define C_RC_TA_1 60
|
|||
|
#define C_SE_TA_1 61
|
|||
|
#define C_SE_TB_1 62
|
|||
|
#define C_SE_TC_1 63
|
|||
|
#define C_BO_TA_1 64
|
|||
|
#define C_IC_NA_1 100 //总召唤命令
|
|||
|
#define C_CI_NA_1 101 //累计量召唤命令
|
|||
|
#define C_RD_NA_1 102 //读命令
|
|||
|
#define C_CS_NA_1 103 //时钟同步
|
|||
|
#define C_TS_NA_1 104 //测试命令
|
|||
|
#define C_RP_NA_1 105 //复位进程命令
|
|||
|
#define C_CD_NA_1 106 //延时获得命令
|
|||
|
#define C_TS_TA_1 107 //带CP56Time2a时标的测试命令
|
|||
|
|
|||
|
#define P_ME_NA_1 110 //测量值参数,归一化值
|
|||
|
#define P_ME_NB_1 111 //测量值参数,标度化值
|
|||
|
#define P_ME_NC_1 112 //测量值参数,短浮点数
|
|||
|
#define P_AC_NA_1 113 //参数激活
|
|||
|
|
|||
|
#define F_FR_NA_1 120 //文件准备就绪
|
|||
|
#define F_SR_NA_1 121 //节准备就绪
|
|||
|
#define F_SC_NA_1 122 //召唤目录,选择文件,召唤文件召唤节
|
|||
|
#define F_LS_NA_1 123 //最后的节,最后的段
|
|||
|
#define F_AF_NA_1 124 //认可文件,认可节
|
|||
|
#define F_SG_NA_1 125 //段
|
|||
|
#define F_DR_TA_1 126 //目录
|
|||
|
#define F_SC_NB_1 127
|
|||
|
|
|||
|
#define C_TD_NA_1 145
|
|||
|
#define M_TD_NA_1 146
|
|||
|
|
|||
|
#define C_SB_NA_1 133
|
|||
|
#define M_SB_NA_1 130
|
|||
|
|
|||
|
#define C_NC_NA_1 147
|
|||
|
#define M_NC_NA_1 148
|
|||
|
|
|||
|
#define C_HD_NB_1 180 //综合能源服务平台终端扩展
|
|||
|
#define C_HD_NC_1 182 //综合能源服务平台终端扩展补采遥测(遥信数据也包含)标识
|
|||
|
#define C_HD_ND_1 183 //综合能源服务平台终端扩展补采电度标识
|
|||
|
|
|||
|
#define IEC_101_104_COT_PER_CYC 1 //周期、循环
|
|||
|
#define IEC_101_104_COT_BACK 2 //背景扫描
|
|||
|
#define IEC_101_104_COT_SPONT 3 //突发(自发)
|
|||
|
#define IEC_101_104_COT_INIT 4 //初始化完成
|
|||
|
#define IEC_101_104_COT_REQ 5 //请求或者被请求
|
|||
|
#define IEC_101_104_COT_ACT 6 //激活
|
|||
|
#define IEC_101_104_COT_ACTCON 7 //激活确认
|
|||
|
#define IEC_101_104_COT_DEACT 8 //停止激活
|
|||
|
#define IEC_101_104_COT_DEACTCON 9 //停止激活确认
|
|||
|
#define IEC_101_104_COT_ACTTREM 10 //激活终止
|
|||
|
#define IEC_101_104_COT_RETREM 11 //远方命令引起的返送信息
|
|||
|
#define IEC_101_104_COT_RETLOC 12 //当地命令引起的返送信息
|
|||
|
#define IEC_101_104_COT_FILE 13 //文件传送
|
|||
|
#define IEC_101_104_COT_INTERROGATION 20 //响应总召唤
|
|||
|
#define IEC_101_104_COT_INRO1 21 //响应第一组召唤
|
|||
|
#define IEC_101_104_COT_INRO2 22 //响应第二组召唤
|
|||
|
#define IEC_101_104_COT_INRO3 23 //响应第三组召唤
|
|||
|
#define IEC_101_104_COT_INRO4 24 //响应第四组召唤
|
|||
|
#define IEC_101_104_COT_INRO5 25 //响应第五组召唤
|
|||
|
#define IEC_101_104_COT_INRO6 26 //响应第六组召唤
|
|||
|
#define IEC_101_104_COT_INRO7 27 //响应第七组召唤
|
|||
|
#define IEC_101_104_COT_INRO8 28 //响应第八组召唤
|
|||
|
#define IEC_101_104_COT_INRO9 29 //响应第九组召唤
|
|||
|
#define IEC_101_104_COT_INRO10 30 //响应第十组召唤
|
|||
|
#define IEC_101_104_COT_INRO11 31 //响应第十一组召唤
|
|||
|
#define IEC_101_104_COT_INRO12 32 //响应第十二组召唤
|
|||
|
#define IEC_101_104_COT_INRO13 33 //响应第十三组召唤
|
|||
|
#define IEC_101_104_COT_INRO14 34 //响应第十四组召唤
|
|||
|
#define IEC_101_104_COT_INRO15 35 //响应第十五组召唤
|
|||
|
#define IEC_101_104_COT_INRO16 36 //响应第十六组召唤
|
|||
|
#define IEC_101_104_COT_REQCOGEN 37 //响应计数量站召唤
|
|||
|
#define IEC_101_104_COT_REQCO1 38 //响应笫一组计数量召唤
|
|||
|
#define IEC_101_104_COT_REQCO2 39 //响应笫二组计数量召唤
|
|||
|
#define IEC_101_104_COT_REQCO3 40 //响应笫三组计数量召唤
|
|||
|
#define IEC_101_104_COT_REQCO4 41 //响应笫四组计数量召唤
|
|||
|
#define IEC_101_104_COT_UNKNOWN_TI 44 //未知类型标识
|
|||
|
#define IEC_101_104_COT_UNKNOWN_COT 45 //未知传送原因
|
|||
|
#define IEC_101_104_COT_UNKNOWN_ASDU 46 //未知的应用服务数据单元公共地址
|
|||
|
#define IEC_101_104_COT_UNKNOWN_INFO 47 //未知的信息对象地址
|
|||
|
|
|||
|
#define IEC_101_104_COT_HDREQ 180 //综合能源服务平台终端扩展
|
|||
|
|
|||
|
#define IEC_101_104_COT_TEST 0x80
|
|||
|
#define IEC_101_104_COT_PN 0x40
|
|||
|
|
|||
|
typedef BYTE TypeID;
|
|||
|
typedef BYTE QualifierOfInterrogation;
|
|||
|
|
|||
|
#define IEC60870_QOI_STATION 20
|
|||
|
#define IEC60870_QOI_GROUP_1 21
|
|||
|
#define IEC60870_QOI_GROUP_2 22
|
|||
|
#define IEC60870_QOI_GROUP_3 23
|
|||
|
#define IEC60870_QOI_GROUP_4 24
|
|||
|
#define IEC60870_QOI_GROUP_5 25
|
|||
|
#define IEC60870_QOI_GROUP_6 26
|
|||
|
#define IEC60870_QOI_GROUP_7 27
|
|||
|
#define IEC60870_QOI_GROUP_8 28
|
|||
|
#define IEC60870_QOI_GROUP_9 29
|
|||
|
#define IEC60870_QOI_GROUP_10 30
|
|||
|
#define IEC60870_QOI_GROUP_11 31
|
|||
|
#define IEC60870_QOI_GROUP_12 32
|
|||
|
#define IEC60870_QOI_GROUP_13 33
|
|||
|
#define IEC60870_QOI_GROUP_14 34
|
|||
|
#define IEC60870_QOI_GROUP_15 35
|
|||
|
#define IEC60870_QOI_GROUP_16 36
|
|||
|
|
|||
|
typedef BYTE QualifierOfCIC;
|
|||
|
|
|||
|
#define IEC60870_QCC_RQT_GROUP_1 1
|
|||
|
#define IEC60870_QCC_RQT_GROUP_2 2
|
|||
|
#define IEC60870_QCC_RQT_GROUP_3 3
|
|||
|
#define IEC60870_QCC_RQT_GROUP_4 4
|
|||
|
#define IEC60870_QCC_RQT_GENERAL 5
|
|||
|
|
|||
|
#define IEC_101_104_YX_START_ADDR 0x0001
|
|||
|
#define IEC_101_104_YX_END_ADDR 0x1000
|
|||
|
#define IEC_101_104_RELAY_EVENT_START_ADDR 0x1001
|
|||
|
#define IEC_101_104_RELAY_EVENT_END_ADDR 0x2000
|
|||
|
#define IEC_101_104_RELAY_CURRENT_START_ADDR 0x2001
|
|||
|
#define IEC_101_104_RELAY_CURRENT_END_ADDR 0x3000
|
|||
|
#define IEC_101_104_RELAY_SETTINGS_START_ADDR 0x3001
|
|||
|
#define IEC_101_104_RELAY_SETTINGS_END_ADDR 0x4000
|
|||
|
#define IEC_101_104_YC_START_ADDR 0x4001
|
|||
|
#define IEC_101_104_YC_END_ADDR 0x5000
|
|||
|
#define IEC_101_104_PARAM_START_ADDR 0x5001
|
|||
|
#define IEC_101_104_PARAM_END_ADDR 0x6000
|
|||
|
#define IEC_101_104_YK_YT_START_ADDR 0x6001
|
|||
|
#define IEC_101_104_YK_YT_END_ADDR 0x6200
|
|||
|
#define IEC_101_104_SETADDR_START_ADDR 0x6201
|
|||
|
#define IEC_101_104_SETADDR_END_ADDR 0x6400
|
|||
|
#define IEC_101_104_YM_START_ADDR 0x6401
|
|||
|
#define IEC_101_104_YM_END_ADDR 0x6600
|
|||
|
|
|||
|
#define LL_FC_00_RESET_REMOTE_LINK 0
|
|||
|
#define LL_FC_01_RESET_USER_PROCESS 1
|
|||
|
#define LL_FC_02_TEST_FUNCTION_FOR_LINK 2
|
|||
|
#define LL_FC_03_USER_DATA_CONFIRMED 3
|
|||
|
#define LL_FC_04_USER_DATA_NO_REPLY 4
|
|||
|
#define LL_FC_07_RESET_FCB 7
|
|||
|
#define LL_FC_08_REQUEST_FOR_ACCESS_DEMAND 8
|
|||
|
#define LL_FC_09_REQUEST_LINK_STATUS 9
|
|||
|
#define LL_FC_10_REQUEST_USER_DATA_CLASS_1 10
|
|||
|
#define LL_FC_11_REQUEST_USER_DATA_CLASS_2 11
|
|||
|
|
|||
|
#define LL_FC_00_ACK 0
|
|||
|
#define LL_FC_01_NACK 1
|
|||
|
#define LL_FC_08_RESP_USER_DATA 8
|
|||
|
#define LL_FC_09_RESP_NACK_NO_DATA 9
|
|||
|
#define LL_FC_11_STATUS_OF_LINK_OR_ACCESS_DEMAND 11
|
|||
|
#define LL_FC_14_SERVICE_NOT_FUNCTIONING 14
|
|||
|
#define LL_FC_15_SERVICE_NOT_IMPLEMENTED 15
|
|||
|
|
|||
|
|
|||
|
#define USE_YX_SP 0
|
|||
|
#define USE_YX_DP 1
|
|||
|
|
|||
|
#define USE_YC_NA 0
|
|||
|
#define USE_YC_NB 1
|
|||
|
#define USE_YC_NC 2
|
|||
|
#define USE_YC_ND 3
|
|||
|
|
|||
|
#define USE_YK_DEF 0
|
|||
|
#define USE_YK_DC 1
|
|||
|
#define USE_YK_SC 2
|
|||
|
|
|||
|
|
|||
|
#define USE_YT_NA 0
|
|||
|
#define USE_YT_NB 1
|
|||
|
#define USE_YT_NC 2
|
|||
|
|
|||
|
|
|||
|
#define DCO_ON 0x02
|
|||
|
#define DCO_OFF 0x01
|
|||
|
|
|||
|
#define SCO_ON 0x01
|
|||
|
#define SCO_OFF 0x00
|
|||
|
|
|||
|
#define IEC_101_104_SE 0x80
|
|||
|
#define IEC_LEVEL_NUM 20 //每个优先级的数量
|
|||
|
#define MAX_LEVEL_BUFFER_SIZE 512
|
|||
|
|
|||
|
#define GET_COT(X) ((X & 0x3f))
|
|||
|
#define GET_NUM(X) ((X & 0x7f))
|
|||
|
#define GET_SPI(X) ((X & 0x01) == 0x01 ? TRUE : FALSE)
|
|||
|
#define GET_DPI(X) ((X & 0x03) == 0x02 ? TRUE : FALSE)
|
|||
|
#define GET_SCO(X) ((X & 0x01) == 0x01 ? TRUE : FALSE)
|
|||
|
#define GET_DCO(X) ((X & 0x03) == 0x02 ? TRUE : FALSE)
|
|||
|
#define GET_SE(X) ((X & 0x80) == 0x80 ? TRUE : FALSE)
|
|||
|
#define GET_SQ(X) ((X & 0x80) == 0x80 ? TRUE : FALSE)
|
|||
|
#define GET_PN(X) ((X & 0x80) == 0x80 ? TRUE : FALSE)
|
|||
|
#define GET_TEST(X) ((X & 0x40) == 0x40 ? TRUE : FALSE)
|
|||
|
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
WORD NS;
|
|||
|
WORD length;
|
|||
|
BYTE data[4096];
|
|||
|
time_t timer;
|
|||
|
} APDUBuffer;
|
|||
|
|
|||
|
#if !defined(NO_ERROR)
|
|||
|
#define NO_ERROR 0L
|
|||
|
#endif
|
|||
|
#define ERROR_CAUSE_OF_TRANSMISSION -1L
|
|||
|
#define ERROR_PN -2L
|
|||
|
#define ERROR_TEST -3L
|
|||
|
#define ERROR_ASDU -4L
|
|||
|
#define ERROR_VSQ -5L
|
|||
|
#define ERROR_INFORMATION_ADDRESS -6L
|
|||
|
#define ERROR_PARAM -7L
|
|||
|
#define ERROR_UNKNOWN -8L
|
|||
|
|
|||
|
//IEC101_IEC104
|
|||
|
static const value_string iec_101_104_asdu_types [] = {
|
|||
|
{ M_SP_NA_1, "M_SP_NA_1" },
|
|||
|
{ M_DP_NA_1, "M_DP_NA_1" },
|
|||
|
{ M_ST_NA_1, "M_ST_NA_1" },
|
|||
|
{ M_BO_NA_1, "M_BO_NA_1" },
|
|||
|
{ M_ME_NA_1, "M_ME_NA_1" },
|
|||
|
{ M_ME_NB_1, "M_ME_NB_1" },
|
|||
|
{ M_ME_NC_1, "M_ME_NC_1" },
|
|||
|
{ M_IT_NA_1, "M_IT_NA_1" },
|
|||
|
{ M_PS_NA_1, "M_PS_NA_1" },
|
|||
|
{ M_ME_ND_1, "M_ME_ND_1" },
|
|||
|
{ M_SP_TB_1, "M_SP_TB_1" },
|
|||
|
{ M_DP_TB_1, "M_DP_TB_1" },
|
|||
|
{ M_ST_TB_1, "M_ST_TB_1" },
|
|||
|
{ M_BO_TB_1, "M_BO_TB_1" },
|
|||
|
{ M_ME_TD_1, "M_ME_TD_1" },
|
|||
|
{ M_ME_TE_1, "M_ME_TE_1" },
|
|||
|
{ M_ME_TF_1, "M_ME_TF_1" },
|
|||
|
{ M_IT_TB_1, "M_IT_TB_1" },
|
|||
|
{ M_EP_TD_1, "M_EP_TD_1" },
|
|||
|
{ M_EP_TE_1, "M_EP_TE_1" },
|
|||
|
{ M_EP_TF_1, "M_EP_TF_1" },
|
|||
|
{ C_SC_NA_1, "C_SC_NA_1" },
|
|||
|
{ C_DC_NA_1, "C_DC_NA_1" },
|
|||
|
{ C_RC_NA_1, "C_RC_NA_1" },
|
|||
|
{ C_SE_NA_1, "C_SE_NA_1" },
|
|||
|
{ C_SE_NB_1, "C_SE_NB_1" },
|
|||
|
{ C_SE_NC_1, "C_SE_NC_1" },
|
|||
|
{ C_BO_NA_1, "C_BO_NA_1" },
|
|||
|
{ C_SC_TA_1, "C_SC_TA_1" },
|
|||
|
{ C_DC_TA_1, "C_DC_TA_1" },
|
|||
|
{ C_RC_TA_1, "C_RC_TA_1" },
|
|||
|
{ C_SE_TA_1, "C_SE_TA_1" },
|
|||
|
{ C_SE_TB_1, "C_SE_TB_1" },
|
|||
|
{ C_SE_TC_1, "C_SE_TC_1" },
|
|||
|
{ C_BO_TA_1, "C_BO_TA_1" },
|
|||
|
{ M_EI_NA_1, "M_EI_NA_1" },
|
|||
|
{ C_IC_NA_1, "C_IC_NA_1" },
|
|||
|
{ C_CI_NA_1, "C_CI_NA_1" },
|
|||
|
{ C_RD_NA_1, "C_RD_NA_1" },
|
|||
|
{ C_CS_NA_1, "C_CS_NA_1" },
|
|||
|
{ C_TS_NA_1, "C_TS_NA_1" },
|
|||
|
{ C_RP_NA_1, "C_RP_NA_1" },
|
|||
|
{ C_CD_NA_1, "C_CD_NA_1" },
|
|||
|
{ C_TS_TA_1, "C_TS_TA_1" },
|
|||
|
{ P_ME_NA_1, "P_ME_NA_1" },
|
|||
|
{ P_ME_NB_1, "P_ME_NB_1" },
|
|||
|
{ P_ME_NC_1, "P_ME_NC_1" },
|
|||
|
{ P_AC_NA_1, "P_AC_NA_1" },
|
|||
|
{ F_FR_NA_1, "F_FR_NA_1" },
|
|||
|
{ F_SR_NA_1, "F_SR_NA_1" },
|
|||
|
{ F_SC_NA_1, "F_SC_NA_1" },
|
|||
|
{ F_LS_NA_1, "F_LS_NA_1" },
|
|||
|
{ F_AF_NA_1, "F_AF_NA_1" },
|
|||
|
{ F_SG_NA_1, "F_SG_NA_1" },
|
|||
|
{ F_DR_TA_1, "F_DR_TA_1" },
|
|||
|
{ F_SC_NB_1, "F_SC_NB_1" },
|
|||
|
{ 0, NULL }
|
|||
|
};
|
|||
|
static const value_string iec_101_104_asdu_lngtypes [] = {
|
|||
|
{ M_SP_NA_1, "single-point information" },
|
|||
|
{ M_DP_NA_1, "double-point information" },
|
|||
|
{ M_ST_NA_1, "step position information" },
|
|||
|
{ M_BO_NA_1, "bitstring of 32 bits" },
|
|||
|
{ M_ME_NA_1, "measured value, normalized value" },
|
|||
|
{ M_ME_NB_1, "measured value, scaled value" },
|
|||
|
{ M_ME_NC_1, "measured value, short floating point number" },
|
|||
|
{ M_IT_NA_1, "integrated totals" },
|
|||
|
{ M_PS_NA_1, "packed single-point information with status change detection" },
|
|||
|
{ M_ME_ND_1, "measured value, normalized value without quality descriptor" },
|
|||
|
{ M_SP_TB_1, "single-point information with time tag CP56Time2a" },
|
|||
|
{ M_DP_TB_1, "double-point information with time tag CP56Time2a" },
|
|||
|
{ M_ST_TB_1, "step position information with time tag CP56Time2a" },
|
|||
|
{ M_BO_TB_1, "bitstring of 32 bit with time tag CP56Time2a" },
|
|||
|
{ M_ME_TD_1, "measured value, normalized value with time tag CP56Time2a" },
|
|||
|
{ M_ME_TE_1, "measured value, scaled value with time tag CP56Time2a" },
|
|||
|
{ M_ME_TF_1, "measured value, short floating point number with time tag CP56Time2a" },
|
|||
|
{ M_IT_TB_1, "integrated totals with time tag CP56Time2a" },
|
|||
|
{ M_EP_TD_1, "event of protection equipment with time tag CP56Time2a" },
|
|||
|
{ M_EP_TE_1, "packed start events of protection equipment with time tag CP56Time2a" },
|
|||
|
{ M_EP_TF_1, "packed output circuit information of protection equipment with time tag CP56Time2a" },
|
|||
|
{ C_SC_NA_1, "single command" },
|
|||
|
{ C_DC_NA_1, "double command" },
|
|||
|
{ C_RC_NA_1, "regulating step command" },
|
|||
|
{ C_SE_NA_1, "set point command, normalized value" },
|
|||
|
{ C_SE_NB_1, "set point command, scaled value" },
|
|||
|
{ C_SE_NC_1, "set point command, short floating point number" },
|
|||
|
{ C_BO_NA_1, "bitstring of 32 bits" },
|
|||
|
{ C_SC_TA_1, "single command with time tag CP56Time2a" },
|
|||
|
{ C_DC_TA_1, "double command with time tag CP56Time2a" },
|
|||
|
{ C_RC_TA_1, "regulating step command with time tag CP56Time2a" },
|
|||
|
{ C_SE_TA_1, "set point command, normalized value with time tag CP56Time2a" },
|
|||
|
{ C_SE_TB_1, "set point command, scaled value with time tag CP56Time2a" },
|
|||
|
{ C_SE_TC_1, "set point command, short floating-point number with time tag CP56Time2a" },
|
|||
|
{ C_BO_TA_1, "bitstring of 32 bits with time tag CP56Time2a" },
|
|||
|
{ M_EI_NA_1, "end of initialization" },
|
|||
|
{ C_IC_NA_1, "interrogation command" },
|
|||
|
{ C_CI_NA_1, "counter interrogation command" },
|
|||
|
{ C_RD_NA_1, "read command" },
|
|||
|
{ C_CS_NA_1, "clock synchronization command" },
|
|||
|
{ C_TS_NA_1, "test command" },
|
|||
|
{ C_RP_NA_1, "reset process command" },
|
|||
|
{ C_CD_NA_1, "get timedelay" },
|
|||
|
{ C_TS_TA_1, "test command with time tag CP56Time2a" },
|
|||
|
{ P_ME_NA_1, "parameter of measured value, normalized value" },
|
|||
|
{ P_ME_NB_1, "parameter of measured value, scaled value" },
|
|||
|
{ P_ME_NC_1, "parameter of measured value, short floating-point number" },
|
|||
|
{ P_AC_NA_1, "parameter activation" },
|
|||
|
{ F_FR_NA_1, "file ready" },
|
|||
|
{ F_SR_NA_1, "section ready" },
|
|||
|
{ F_SC_NA_1, "call directory, select file, call file, call section" },
|
|||
|
{ F_LS_NA_1, "last section, last segment" },
|
|||
|
{ F_AF_NA_1, "ack file, ack section" },
|
|||
|
{ F_SG_NA_1, "segment" },
|
|||
|
{ F_DR_TA_1, "directory" },
|
|||
|
{ F_SC_NB_1, "Query Log - Request archive file" },
|
|||
|
{ 0, NULL }
|
|||
|
};
|
|||
|
|
|||
|
static const value_string iec_101_104_causetx_types [] = {
|
|||
|
{ IEC_101_104_COT_PER_CYC, "Per/Cyc" },
|
|||
|
{ IEC_101_104_COT_BACK, "Back" }, //背景扫描
|
|||
|
{ IEC_101_104_COT_SPONT, "Spont" }, //突发(自发)
|
|||
|
{ IEC_101_104_COT_INIT, "Init" }, //初始化完成
|
|||
|
{ IEC_101_104_COT_REQ, "Req" }, //请求或者被请求
|
|||
|
{ IEC_101_104_COT_ACT, "Act" }, //激活
|
|||
|
{ IEC_101_104_COT_ACTCON, "Actcon" }, //激活确认
|
|||
|
{ IEC_101_104_COT_DEACT, "Deact" }, //停止激活
|
|||
|
{ IEC_101_104_COT_DEACTCON, "Deactcon" }, //停止激活确认
|
|||
|
{ IEC_101_104_COT_ACTTREM, "Actterm" }, //激活终止
|
|||
|
{ IEC_101_104_COT_RETREM, "Reterm" }, //远方命令引起的返送信息
|
|||
|
{ IEC_101_104_COT_RETLOC, "Retloc" }, //当地命令引起的返送信息
|
|||
|
{ IEC_101_104_COT_FILE, "File" }, //文件传送
|
|||
|
{ IEC_101_104_COT_INTERROGATION, "Interrogation" }, //响应总召唤
|
|||
|
{ IEC_101_104_COT_INRO1, "Inro1" }, //响应第一组召唤
|
|||
|
{ IEC_101_104_COT_INRO2, "Inro2" }, //响应第二组召唤
|
|||
|
{ IEC_101_104_COT_INRO3, "Inro3" }, //响应第三组召唤
|
|||
|
{ IEC_101_104_COT_INRO4, "Inro4" }, //响应第四组召唤
|
|||
|
{ IEC_101_104_COT_INRO5, "Inro5" }, //响应第五组召唤
|
|||
|
{ IEC_101_104_COT_INRO6, "Inro6" }, //响应第六组召唤
|
|||
|
{ IEC_101_104_COT_INRO7, "Inro7" }, //响应第七组召唤
|
|||
|
{ IEC_101_104_COT_INRO8, "Inro8" }, //响应第八组召唤
|
|||
|
{ IEC_101_104_COT_INRO9, "Inro9" }, //响应第九组召唤
|
|||
|
{ IEC_101_104_COT_INRO10, "Inro10" }, //响应第十组召唤
|
|||
|
{ IEC_101_104_COT_INRO11, "Inro11" }, //响应第十一组召唤
|
|||
|
{ IEC_101_104_COT_INRO12, "Inro12" }, //响应第十二组召唤
|
|||
|
{ IEC_101_104_COT_INRO13, "Inro13" }, //响应第十三组召唤
|
|||
|
{ IEC_101_104_COT_INRO14, "Inro14" }, //响应第十四组召唤
|
|||
|
{ IEC_101_104_COT_INRO15, "Inro15" }, //响应第十五组召唤
|
|||
|
{ IEC_101_104_COT_INRO16, "Inro16" }, //响应第十六组召唤
|
|||
|
{ IEC_101_104_COT_REQCOGEN, "Reqcongen" }, //响应计数量站召唤
|
|||
|
{ IEC_101_104_COT_REQCO1, "Reqco1" }, //响应笫一组计数量召唤
|
|||
|
{ IEC_101_104_COT_REQCO2, "Reqco2" }, //响应笫二组计数量召唤
|
|||
|
{ IEC_101_104_COT_REQCO3, "Reqco3" }, //响应笫三组计数量召唤
|
|||
|
{ IEC_101_104_COT_REQCO4, "Reqco4" }, //响应笫四组计数量召唤
|
|||
|
{ IEC_101_104_COT_UNKNOWN_TI, "Unknown type id" }, //未知类型标识
|
|||
|
{ IEC_101_104_COT_UNKNOWN_COT, "Unknown cot" }, //未知传送原因
|
|||
|
{ IEC_101_104_COT_UNKNOWN_ASDU, "Unknown asdu address" }, //未知的应用服务数据单元公共地址
|
|||
|
{ IEC_101_104_COT_UNKNOWN_INFO, "Unknown infomation address" }, //未知的信息对象地址
|
|||
|
{ 0, NULL }
|
|||
|
};
|
|||
|
|
|||
|
#endif //_ZJD_IEC_101_104_LIB_H_
|