图3. 分配 IP 地址
5.在S7-1200 中调用建立连接指令,进入 “项目树” > “ PLC_1” > “程序块” > “OB1” 主程序中,从右侧窗口 “指令”> “通信”>“开放式用户通信”下调用 “TCON” 指令,配置连接参数,如图4所示。
图4. 调用TCON指令并配置连接参数
6.创建用于交换数据的全局DB块及定义变量
通过“项目树”>“PLC_1”>“程序块”>“添加新块”,选择“数据块” 创建全局 DB 块,点击“确定” 生成数据块。如图5所示。
图5.添加新块
通过“项目树”>“PLC_1”>“程序块”>点击生成的 “数据块_1” ( DB4 ) ,右键属性,取消勾选“优化的块访问”。如图6所示。
图6.取消勾选优化的块访问
双击生成的 “数据块_1” ( DB4 ) ,定义数组,10 个字节用于发送,10个字节用于接收,然后编译数据块。结果如图7所示。
图7. 定义交换数据区
7.在OB1中调用 TSEND 和 TRCV
指令块位置及调用方法参考 TCON 指令的调用,调用结果如图8所示。
CALL TSEND REQ ID DATA DONE BUSY , DB3 //调用TSEND,使用背景DB块:DB3 :M0.5 :1 :P#DB4.DBX0.0 BYTE 10 :M20.0 //使用1Hz的时钟脉冲,上升沿激活发送任务 //连接号,要与连接配置中一致 // 发送数据区的数据,需要注意DB块要选用绝对寻址 // 任务执行完成并且没有错误,该位置1 // 该位为1,代表任务未完成,不能激活新任务 :M20.1 ERROR STATUS :M20.2 // 通信过程中有错误发生,该位置1 :MW22 // 有错误发生时,会显示错误信息号
CALL TRCV EN_R ID DATA DONE BUSY ERROR STATUS RCVD_LEN , DB5 :M1.2 :1 :P#DB4.DBX10.0 BYTE 10 :M30.0 :M30.1 :M30.2 //调用TRCV,使用背景DB块:DB5 //准备好接受数据 ,常1接收 //连接号,要与连接配置中一致 // 接受数据区的数据,需要注意DB块要选用绝对寻址 // 任务执行完成并且没有错误,该位置1 // 该位为1,代表任务未完成,不能激活新任务 // 通信过程中有错误发生,该位置1 :MW32 // 有错误发生时,会显示错误信息号 :MW34 // 实际接受数据的字节数 图8. 调用发送和接收指令
接收和发送指令调用需要注意:
程序块的 ID 要与指令 TCON 中的 ID 保持一致 DATA 参数的填写方法 ( 以 TRCV 程序块为例 ): 1、直接输入 : P#DB4.DBX10.0 BYTE 10
2、打开数据块,点击数据块右上角浮动按钮,移动数据块与OB1并
排显示,选中数据块变量名称 “ TCP_RCV ” 拖拽到 TRCV 指令 DATA 参数处,该区域显示为绿色,释放鼠标即可。
S7-200 SMART侧编程 ( 服务器侧组态编程 )
1.打开STEP 7 Micro/WIN SMART>项目树>指令树>库>Open User Communication ,调用TCP_CONNECT,如图9所示。