继电器西门子CPU1214C模块
发布时间:2018/8/20 17:52:00继电器西门子CPU1214C模块
实体公司 现货供应
西门子代理合作伙伴
上海斌勤电气技术有限公司
有需要的新老顾客欢迎上门提货谈生意(老顾客注意公司地址更改)
相关技术:
S7-1200与D410 TCP 通讯
1 概述
本文介绍了通过OPEN IE的方式实现S7-1200与SIMOTION D410PN之间的TCP通信的方法,包括通信的基本配置、组态和编程等内容。S7-1200实现TCP通讯的指令有两种,一是不带连接的指令(TCON,TDISCON,TSEND,TRCV),另一种是带连接的指令(T RCV_C,TSEND_C);SIMOTON包含的通信指令包括tcpOpenClient,tcpOpenServe r,tcpSend,tcpReceive,tcpCloseSever,tcpCloseConnection。
本文选用S7-1200不带连接的指令TCON,TDISCON,TSEND,TRCV,实现与D410 PN的通讯。
2 S7-1200与D410PN装置的连接
2.1 硬件配置列表
设备 | 订货号 | 版本 |
CPU 1214C DC/DC/DC | 6ES7214-1AE30-0XB0 | V2.2 |
D410PN | 6AU1410-0AB00-0AA0 | Version B, FW V4.2 |
SCANLANCE X208 | 6GK5208-0BA10-2AA3 | V3.1 |
表1 测试所采用的硬件列表
2.2 所使用的软件
§ TIA Portal V11 SP2
§ SCOUT V4.2.1
2.3 通讯参数设置
硬件连接配置
图1 硬件连接示意图
CPU 1214C和D410PN本身都带有集成PN口,可以直接使用。
IP 地址设置(子网掩码均为255.255.255.0):
DEVICE | IP Address |
CPU 1214C | 192.168.0.4 |
D410DP | 192.168.0.2 |
PC | 192.168.0.10 |
表2 IP地址设置
3 项目配置
3.1 S7-1200的配置
打开TIA Portal软件,新建一个项目,在“添加新设备”中选择所需的硬件及版本,如图2所示。
图2 选择设备和版本
打开设备视图,设置设备“属性”下的以太网地址为192.168.0.4,子网掩码为255. 255.255.0。见图3。
图3 设置以太网地址
在设备视图的属性窗口中设置时钟存储器,将时钟存储器的地址设置为MB20,并使用其中的M20.5位,0和1信号以1Hz频率切换,用来循环激活发送任务,见图4。
图4 时钟存储器设置
3.2 D410PN的配置
打开SCOUT软件,新建一个项目,设置PG/PC接口为电脑的以太网卡,双击“INSERT SIMOTION DEVICE”后,选择相应版本的D410PN插入,并打开硬件组态画面,在其中设置PN口的以太网地址和子网掩码,见图5。
图5 组态D410PN地址
4 通信指令
4.1 S7-1200侧的指令调用
TCON,TDISCON,TSEND,TRCV等指令均可以在右侧指令中的“通信—〉开放式用户通信”找到。本文中所有通讯指令均在background 中执行。
S7-1200在本文中作为Server,通讯开始前先激活TCON指令来建立服务器端口,并等待Client的建立连接请求,一旦通信连接成功建立,此时“REQ”就不再起作用,若想重新建立连接需先调用“TDISCON”断开连接,再从新激活“TCON”重新建立连接。
图6 调用TCON
“REQ”:激活TCON功能。
“ID”:设置所建立连接的ID,以后的TSEND、TRCV、TDISCON均使用此ID。
“CONNECT”:连接配置DB,在配置完TCON参数后自动生成。
“Done”:建立连接任务完成后置1。
“BUSY”:建立连接任务执行中置1。
“ERROR”为1时,在STATUS中显示错误代码,“ERROR”为0时,在STATUS中显示指令执行状态代码。
当连接建立成功后,通过程序段2可以将“opensever”置0。
在调用TCON指令时系统会要求设置连接参数,见图7。
图7 TCON连接参数设置
“伙伴”:选择未指定。
“地址”:设置与S7-1200通讯的SIMOTION的地址。
“连接类型”:选择TCP。
“连接ID”: 发送、接收和连接断开所使用的ID。
“连接数据”:设置新建或使用已有的连接DB。
“主动建立连接”:选择主动建立连接的一方为客户端,另一方为服务器。
“端口”:设置本地和伙伴的端口号,在SIMOTION的指令中会用到这里。
设置TCON参数时要先选择“连接数据”中的“新建”,建立一个新的Connection DB,然后再填写各个参数。
在通讯成功建立后,激活TSEND,TRCV指令(将发送指令的“REQ”端置1,将接收指令的“EN_R”置1),用来发送和接受数据。
图8 TSEND连接参数设置
图9 TRCV连接参数设置
注意:
(1) 在建立“DATA”中要插入的发送数据和接受数据DB时,其块访问的方式必须是“标准-与S7-300/400兼容”,否则在激活该指令时会报错,见图10。
(2) TSEND与TRCV的“ID”必须与TCON中设置的相同,而此“ID”与SIMOTION中的“ID”未必相同。
(3) TRCV在接收数据成功后,“NDR”会自动置1,且“RCVD_LEN”会显示接收到的数据长度。
图10 数据 DB建立
若要断开当前连接,则调用TDISCON。成功断开连接后,根据程序段6,“dis con”位会被重新置0。
图11 TDISCON连接参数设置
4.2 SIMOTION侧的指令调用
SIMOTION的通信指令可以在Command library中的“Communication->Data transfer”目录下找到。通信程序块“TCP”放在background中运行。
tcpOpenClient指令,该指令用来在simotion 侧激活客户端端口,并向服务器发送连接请求,若请求成功,则建立连接,并返回连接ID。该指令需使用上跳沿单次触发,此函数只调用,得到连接ID后应停止调用。
图12 tcpOpenClient指令参数设置
“port”:设置simotion本地端口号。
“severAddress”:设置通讯服务器(S7-1200)地址(192.168.0.4)。
“serverport”:设置服务器(S7-1200)端口号,必须与S7-1200组态中设置的相同。
“nextCommand”:
IMMEDIATELY:命令与后续所要执行的命令同步执行。
WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。
本文中将程序放在simotion的background中执行,因此若使用WHEN_COMMAND_DONE模式,有可能在该命令执行时间过长情况下导致background执行超时,系统报错停机。
“OUT”:函数调用返回信息,包括执行状态和返回的连接ID,后面的发送和接收指令均使用该ID。数据类型为结构体(StructRetTcpOpenClient),参考表3。
结构 | 名称 | 数据类型 |
functionResult | 状态信息,查看 连接是否建立 | DINT |
connectionId | 连接号 | DINT |
表3 TcpOpenClient返回值结
TcpSend指令用于发送数据,与S7-1200的接收指令相对应,可循环调用。
图13 TcpSend参数设置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令与后续所要执行的命令同步执行。
WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。
本文中将程序放在simotion的background中执行,因此若使用WHEN_COMMAND_DONE模式,有可能在该命令执行时间过长情况下导致background执行超时,系统报错停机。
“DataLength”:发送数据的字节长度,本例为8,发送数据区的前8个字节。
“Data”:发送数据区,数据类型为数组,ARRAY[0..4095] OF BYTE。
“OUT”:输出通信状态。
注意:SIMOTION的发送区(接收区)与PLC的接收区(发送区)数据长度必须一致。
TcpReceive指令用于发送数据,与S7-1200的接收指令相对应,可循环调用。
图14 TcpReceive参数设置
“ConnectionId” :使用tcpOpenClient返回的ID。
“nextCommand”:
IMMEDIATELY:命令与后续所要执行的命令同步执行。
WHEN_COMMAND_DONE:命令执行或失败后执行后续的命令,异步执行。
本文中将程序放在simotion的background中执行,因此若使用WHEN_COMMAND_DONE模式,有可能在该命令执行时间过长情况下导致background执行超时,系统报错停机。
“receivevarible”:接收数据区,数据类型为数组,ARRAY[0..4095] OF BYTE。
“OUT”:调用函数返回信息,包括调用状态和接收的字节数量。数据类型为结构体(StructRetTcpReceive),参考表4。
结构 | 名称 | 数据类型 |
functionResult | 接收状态信息 | DINT |
dataLength | 接收字节长度 | UDINT |
表4 TcpReceive返回值结构
5 实验过程
本例中使用的程序可以在“S7-1200.zip (1350 KB) ( 1350 KB ) ”和“D410.zip (1597 KB) ( 1597 KB ) ”这两个压缩包中找到。
首先在S7-1200侧激活建立连接的指令“TCON”,等待SIMOTION侧的连接请求,接着在SIMOTION侧激活打开客户端指令“TcpOpenClient”,发送建立连接的请求。请求成功后,“TcpOpenClient”的返回值结构中的functionResult会显示“0”,同时在connec tionId中会返回ID(此ID与PLC中设置的ID未必一致)。
之后分别使能PLC侧和SIMOTION侧的发送接收指令,开始数据传送。
SIMOTION侧WATCH TABLE监控结果:
图15 SIMOTION侧接收和发送的数据
PLC侧监控表的监控结果:
图16 PLC侧接收和发送的数据