西门子开放式IE通讯在水电站监控系统中的应用
表1:PLC所需程序块
字节 | 参数 | 数据 类型 | 初始值 | 说明 |
0 | block_length | WORD | 64 | 本数据结构的长度(字节数),固定为64。 |
2 | id | WORD | 1 | 连接ID号(范围16#0001-16#FFFF),通过初始化程序设置。 |
4 | connection_type | BYTE | 1 | 连接类型,固定为1:兼容的TCP/IP协议。 |
5 | active_est | BOOL | 0 | 连接建立方式,0:被动,1:主动,固定为0,CPU作为服务器,等待建立连接请求。 |
6 | local_device_id | BYTE | 2 | 本地设备ID,固定为2:CPU集成以太网接口。 |
7 | local_tsap_id_len | BYTE | 2 | 本地站TSAP长度,固定为2:TSAP为端口号。 |
8 | rem_subnet_id_len | BYTE | 0 | 远程子网长度,不相关。 |
9 | rem_staddr_len | BYTE | 4 | 远程站地址长度,固定为4:有效的IP地址,IP地址位于rem_staddr4个字节。 |
10 | rem_tsap_id_len | BYTE | 0 | 远程站TSAP长度,不相关。 |
11 | next_staddr_len | BYTE | 0 | 下一站地址长度,不相关。 |
12 | local_tsap_id ARRAY[1..16] | BYTE | 0 | 本地站端口号(范围2000-5000) |
28 | rem_subnet_id ARRAY[1..6] | BYTE | 0 | 不相关 |
34 | rem_staddr ARRAY[1..6] | BYTE | 0 | 远程站IP地址,通过初始化程序设置。 |
40 | rem_tsap_id ARRAY[1..16] | BYTE | 0 | 远程站TSAP或端口号,不相关。 |
56 | next_staddr | BYTE | 0 | 不相关 |
62 | spare | WORD | 0 | 不相关 |
表2:连接结构(UDT65)说明
4.4 以太网通讯控制程序以太网通讯控制程序采用面向对象的结构化编程方法,在一个功能块(FB73)中封装了以太网通讯的建立连接、接收数据、调用Modbus/TCP协议处理程序和发送数据等过程。为此必须声明用于以太网通讯控制程序(FB73)输入、输出和输入/输出参数。具体声明的参数如下表3所示:
地址 | 声明 | 名称 | 类型 | 初始值 | 说明 |
0.0 | IN | Con_ID | Word | 0 | 连接ID号 |
2.0 | IN_OUT | TCON_Start | Bool | 0 | 开始建立连接 |
4.0 | IN_OUT | Connect | Any | 连接参数地址指针 | |
14.0 | IN_OUT | Data | Any | 存放通讯临时数据的数据块指针 | |
24.0 | STAT | TCON_Done | Bool | 0 | 建立连接正确完成标志 |
24.1 | STAT | TCON_Busy | Bool | 0 | 正在建立连接标志 |
24.2 | STAT | TCON_Error | Bool | 0 | 建立连接错误完成标志 |
24.3 | STAT | TSEND_Start | Bool | 0 | 开始发送数据标志 |
24.4 | STAT | TSEND_Done | Bool | 0 | 发送数据正确完成标志 |
24.5 | STAT | TSEND_Busy | Bool | 0 | 正在发送数据标志 |
24.6 | STAT | TSEND_Error | Bool | 0 | 发送数据错误完成标志 |
24.7 | STAT | TRCV_Start | Bool | 0 | 开始接收数据标志 |
25.0 | STAT | TRCV_Done | Bool | 0 | 接收数据正确完成标志 |
25.1 | STAT | TRCV_Busy | Bool | 0 | 正在接收数据 |
25.2 | STAT | TRCV_Error | Bool | 0 | 接收数据错误完成标志 |
26.0 | STAT | Rcvd_Len | Int | 0 | 接收到数据的临时长度 |
28.0 | STAT | Byte_Count | Int | 0 | 接收到数据的长度 |
30.0 | STAT | FB_TSend | FB 63 | 发送数据功能块多重背景 | |
52.0 | STAT | FB_TRcv | FB 64 | 接收数据功能块多重背景 | |
76.0 | STAT | FB_Tcon | FB 65 | 建立连接功能块多重背景 | |
96.0 | STAT | FB_ModbusTCP | FB 74 | Modbus/TCP协议处理功能块多重背景 |
4.5 Modbus/TCP协议处理程序
Modbus/TCP协议处理程序采用面向对象的结构化编程方法,在一个功能块(FB74)中封装了数据数量、数据地址和功能码判断,处理并准备上传所需数据等全部过程。为此必须声明用于Modbus/TCP协议处理程序(FB74)输入、输出和输入/输出参数。具体声明的参数如下表4所示:
地址 | 声明 | 名称 | 类型 | 初始值 | 说明 |
0.0 | IN_OUT | Byte_Count | Int | 0 | 以太网通讯接收到数据的长度 |
2.0 | IN_OUT | Data_DB | Int | 0 | 存放通讯临时数据的数据块 |
本程序的难点在于实现对不同数据块的读取和写入,通过Modbus/TCP协议结构中寄存器地址字节8 (寄存器高字节)对应数据块号、寄存器地址字节9 (寄存器低字节)对应数据块字节号就可解决。
自本系统运行以来,CPU315-2PN/DP与上位机系统操作员工作站1、2通讯一直正常,从未出现过通讯中断现象,有效地保证了湖南铜信溪水电站监控系统的正常运行, 应用这种方法不需要采用西门子公司OPC能有效降低整个水电站监控系统成本。可见,采用通过开放式IE通讯与上位机系统通讯是一种行之有效的方法,实现了读取遥信、遥测、定值、SOE和写入遥控、遥调和定值等功能,完全满足《DL/T578-1995水电厂计算机监控系统基本技术条件》实时性、可靠性和通讯安全性要求。由此看来,西门子PLC集成PROFINET接口的CPU模块采用开放式IE通讯与第三方智能设备通过以太网交换数据是一种值得推广的方式。
参考文献
1. 使用STEP7 V5.3编程手册 2004.1
2. 用于S7-300和S7-400的语句表编程参考手册 2004.1
3. 用于S7-300和S7-400的系统软件和标准功能参考手册 2005.7
评论