⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c103_485.h

📁 以太网103转四方串口103,以太网103转四方串口103
💻 H
字号:
#ifndef C103_485
#define C103_485

#include		"wd_defs.h"

#define X103_ASDU_SIZE		0x300

/* 103应用服务数据单元(ASDU)格式 */
typedef struct tagT_103_ASDU
{
	BYTE	type;
	BYTE	vsq;
	BYTE	cot;
	BYTE	addr;
	BYTE	fun;
	BYTE	inf;
	BYTE	data[X103_ASDU_SIZE-6];
}	T_103_ASDU;

/* 103数据(信息元)格式 */
typedef struct tagT_103_DATA
{
	BYTE	ginl;
	BYTE	ginh;
	BYTE	kod;
	BYTE	type;
	BYTE	size;
	BYTE	num;
	BYTE	data[16];
}	T_103_DATA;

/* 103扰动数据格式 */
typedef struct tagT_103_WAVE
{
	BYTE	fanl;
	BYTE	fanh;
	BYTE	sof;
	BYTE	data[7];
}	T_103_WAVE;

#define	FLAG_RESET_CU					50		/* 复位通信单元标志 */
#define	FLAG_RESET_FCB				100		/* 复位帧计数位标志 */
#define	FLAG_POLLING					200		/* 启动总查询的标志 */
#define	FLAG_GENERAL_READ			300		/* 通用分类读读标志 */
#define	FLAG_POLLING_END				400		/* 总查询终止标志	*/
#define	FLAG_POWER_ON				500		/* 启动/重新启动		*/
#define	FLAG_SEND_EVENT				600		/* 发送事件标志		*/
#define	FLAG_SEND_SOFW				700		/* 传送软压板信息	*/

#define	FLAG_AUTOSEND_WAVE_TABLE	50		/* 主动送扰动表		*/
#define	FLAG_QUERYSEND_WAVE_TABLE	100		/* 总查询送扰动表	*/
#define	FLAG_SEND_DATA_READY		150		/* 传送扰动数据		*/
#define	FLAG_SEND_STATE_READY		200		/* 传送状态就绪		*/
#define	FLAG_SEND_ORIGINAL_STATE		250		/* 传送初始状态		*/
#define	FLAG_SEND_CHANGE_STATE		300		/* 传送带标志的状态变位*/
#define	FLAG_SEND_STATE_END			350		/* 带标志的状态传输结束*/
#define	FLAG_SEND_CHANEL_READY		400		/* 通道传输准备就绪*/
#define	FLAG_SEND_CHANEL_DATA		450
#define	FLAG_SEND_CHANEL_END			500

/* 各组的起始点号 */
#define	EVT_BEGIN	-1		/* 事件起始码 */
#define	ALA_BEGIN	79		/* 告警起始码 */
#define	SFC_BEGIN	160		/* 压板起始码 */
#define	DIC_BEGIN	176		/* 遥信起始码 */
#define	MEA_BEGIN	208		/* 遥测起始码 */

#define	VALID		0x33	/* 有效定值区号 */
#define	INVALID		0x00	/* 无效定值区号 */

//帧格式类型
#define	FRAME_T_VOL	0x68	/* 可变帧长 */
#define	FRAME_T_CON	0x10	/* 固定帧长 */

//报文类型
#define	ASDU_1		1
#define	ASDU_5		5
#define	ASDU_6		6
#define	ASDU_7		7
#define	ASDU_8		8
#define	ASDU_10	10
#define	ASDU_20	20
#define	ASDU_21	21
#define	ASDU_23	23
#define	ASDU_24	24
#define	ASDU_25	25

/*******************************函数部分************************************/

/* 任务初始化函数 */
VOID Task_Serial(UNSIGNED argc, VOID *argv);

/* 规约处理部分函数 */
static void Serial_Interpret(BYTE *m_rx_buf);
static void process_fix_packet(BYTE *m_rx_buf,BYTE byDevAddr);
static void process_var_packet(BYTE *m_rx_buf,BYTE byDevAddr);

void Reply_Asdu05(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu06(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu07(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu08(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu10(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu20(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu21(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu24(BYTE *m_rx_buf, BYTE byDevAddr);
void Reply_Asdu25(BYTE *m_rx_buf, BYTE byDevAddr);

void send_channel(BYTE *m_rx_buf, BYTE byDevAddr, BYTE channels_count);
void Send_Confirm(BYTE *m_rx_buf, BYTE byDevAddr, BYTE cot, BYTE inf, BYTE f_ctrl);
/* 辅助函数 */
BYTE Makecrc(BYTE *str, WORD nSize);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -