据结构体中。在本程序示例中,使用数据结构体 UDT65 "TCON_PAR",用户将对这个数据结构体进行参数化。不需要在 NetPro 中配置通信连接。UDT65的创建需要使用 Open IE向导来完成。
创建开放式 TCP/IP 通信所需的连接数据的向导 (Open Communication Wizard)请从下述链接中下载
二、S7 Open IE通讯程序描述
1.使用Open IE 向导生成数据块
(1) 打开Open Communication Wizard程序,如图1所示:
图1.
(2)点击“Next”,如图2所示:
图2.
(3)在图3画面中选择S7-300项目及数据块的存贮路径:
图3.
(4)在图4画面中点击“Next”:
图4.
(5)在图5画面中选择“TCP native”后点击“Next”:
图5.
(6)在图6画面中选择如下后点击“Next”:
图6.
(7)在图7画面中选择此PLC的连接方式(Active为Client,Passive为Server),通讯伙伴的IP地址及使用PLC的版本号:
图7.
(8)在图8画面中输入本PLC及通讯伙伴的端口号:
图8.
(9)在图9画面中输入生成的数据块名称,本程序中为UDT65:
图9.
(10)在图10画面中点击“Next”:
图10.
(11)在图11画面中点击“Finish”,结束配置:
图11.
2.PLC编程
(1)创建数据块DB1,如图12所示:
图12.
(2)拷贝FB63,FB54,FB65,FB66至项目中,并分别为其创建背景数据块DB63,DB64,DB65,DB66,如图13所示:
图13.
(3)在OB1中编程通讯程序,如图14所示:
图14.
3.PLC通讯功能块介绍
(1)调用FB65 建立通讯连接
图15.
输入参数 "REQ" :其上升沿触发来建立连接。
输入参数“ID”:为连接ID。
输入参数“CONNECT”:填写用UDT65生成的数据块DB1,连接建立后会一直保持,直到调用FB66才会中断。
输出参数:
BUSY | DONE | ERROR | 描述 |
TRUE | 正在处理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因错误而中止,原因参看""Status" |
FALSE | FALSE | FALSE | FB未被分配一个新任务 |
输出参数“STATUS”:错误信息。
(2)调用FB64 接收程序
6ES74000HR044AB0
图16.
输入参数 "EN_R" :始终为“TRUE”。
输入参数“ID”:为连接ID。
输出参数“RCVD_LEN”:为接收数据长度。
输出参数:
BUSY | DONE | ERROR | 描述 |
TRUE | 正在处理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因错误而中止,原因参看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一个新任务 |
输出参数“STATUS”:错误信息。
(3)调用FB63 发送程序
图17.
输入参数 "REQ" :为发送请求,上升沿有效。
输入参数“ID”:为连接ID。
输入参数“LEN”:为发送数据长度。
输出参数:
BUSY | DONE | ERROR | 描述 |
TRUE | 正在处理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因错误而中止,原因参看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一个新任务 |
输出参数“STATUS”:错误信息。
(4)调用FB66 中断连接程序
图18.
输入参数 "REQ" :为中断连接请求,上升沿有效。
输入参数“ID”:为连接ID。
输出参数:
BUSY | DONE | ERROR | 描述 |
TRUE | 正在处理中 | ||
FALSE | TRUE | FALSE | 工作成功完成 |
FALSE | FALSE | TRUE | 工作因错误而中止,原因参看""Status" |
FALSE | FALSE | FALSE | FB 未被分配一个新任务 |
输出参数“STATUS”:错误信息。
4.Simotion侧的编程
(1)在Simotion的命令库中,包含TCP IP通讯函数,如图19所示:
图. 19
(2)打开服务器程序
图. 20
port : Simotion自己的Port,如2001
backlog : 允许的并行连接数
nextcommand : 同步或异步调用
Out : 含functionresult和connectionID
(3)接收数据
图. 21
connectionid : 连接ID,在OpenServer的返回值中。
nextcommand : 同步或异步调用
receivevariable : 接收到的数据
Out : 接收返回值,含function result和datalength
(3)发送数据
图. 22
Connectionid : 连接ID,在OpenServer的返回值中。
nextcommand :同步或异步调用
datalength : 发送数据的长度
data : 发送的数据
注意:
Simotion侧与PLC侧的发送及接收区数据长度应保持相同。
三、程序示例
PLC程序请参见附带文件:Plc-317o.zip
Simotion程序请参见附带文件:OpenIED435tcpi.zip
1. 概述
S7-PLCSIM V5.4 SP3与其他版本的S7-PLCSIM相比,增加了仿真CPU之间相互通信及在状态栏显示CPU所有可访问接口等功能。本文通过模拟两个S7- 400PLC之间基于TCP/IP的S7通讯,介绍如何使用S7-PLCSIM V5.4 SP3的仿真功能。
2. 软件环境
2.1 STEP7 V5.4 SP3
用于编写PLC程序,此软件需要从西门子购买,本文档中所有的程序代码均使用Step7 V5.4 SP3编写。
2.2 S7-PLCSIM V5.4 SP3
PLC仿真软件,一般操作可参考《S7-PLCSIM使用入门》
http://www.ad.siemens.com.cn/download/docMessagebx?ID=2760&loginID=&srno=&sendtime=
更新功能信息及升级软件包可从以下链接地址下载 36068796
3. 硬件组态
新建一个项目在SIMATIC Manager中插入两个S7-400站,打开HW Config界面进行硬件组态,站点配置如下图:
图 1 -1#站点硬件组态
图1表示1#站点,包含电源和CPU 414-3PN/DP,IP地址192.168.0.1;
图 2-2#站点硬件组态
图2表示2#站点,包括电源,CPU412-2DP以及CP443-1通讯模块,IP地址192.168.0.2
4. 网络组态
打开Netpro可以看到如图3所示的网络结构图
图 3-网络结构图
建立两个站点之间的S7连接,单击CPU414-3PN/DP,单击鼠标右键,选择“Insert New Connection”, 如图4
图 4-插入新连接
在“Insert New Connection”对话框选择通讯方CPU(Partner),选择连接类型S7 connection(默认选择),如图5
图 5-设置连接类型及通讯对象
点击“OK”按钮进入“S7 connection ”属性对话框设置如图6,在连接路径“Connection Path”中可以看到通讯双方CPU及通讯接口地址。
图 6-设置通讯接口
点击“OK”按钮,在网络结构图下方列表中生成S7连接如图7,编译保存完成网络组态。
图 7-完成配置S7连接
5. STEP7编程
S7-400使用标准库系统功能块中的SFB8/9/12/13/14/15,具体信息可参考
《用于S7-300/400系统和标准功能的系统软件》1214574
本例程在414-3PN/DP的OB1中调用SFB12,412-2DP的OB1中调用SFB13实现两个PLC之间的S7通讯,通讯长度10个字节,如图8。
图 8-调用S7通讯功能块
6. PLCSIM仿真调试
6.1 启动仿真
在STEP7中启动PLCSIM进入仿真模式。
• STEP7 SIMATIC Manager菜单栏Options->Simulate Modules如图9
图 9-菜单栏启动仿真器PLCSIM
• STEP7 SIMATIC Manager工具栏单击 图标,如图10
图 10-工具栏菜单栏启动仿真器PLCSIM
启动后显示CPU仿真界面S7-PLCSIM1如图11
图 11-仿真器
6.2 下载项目
6.2.1. 选择通讯接口
下载项目前先选择正确的PG/PC接口,本例程仿真基于TCP/IP的S7通讯,所以选择PLCSIM(TCP/IP),如图12。
图 12-设置PG/PC interface
6.2.2. 下载1#站点
选择下载1#站点BLOCK到PLCSIM1中如图13
图 13-下载1#站点
下载完成后如图14在标题栏显示当前模拟的1#站点CPU414-3PN/DP,状态栏显示CPU可用的接口类型及地址;
图 14-1#站点仿真器
6.2.3. 下载2#站点
在下载2#站点到PLCSIM前,需要再打开一个新的PLCSIM2进程如图15
图 15-新建仿真器
然后重复下载1#站点的操作步骤,下载2#站点到PLCSIM2,如图16
图 16-2#站点仿真器
6.3 通讯调试
将两个下载到PLCSIM中的站点CPU切换到RUN-P模式,打开Netpro查看激活的连接状态,可以看到连接已经建立成功,如图17
图 17-S7连接状态
如图18,在两个站点BLOCK中各建一个变量表,1#站点监控发送缓冲区MB0~MB9,在MW20中设置发送长度10,I0.0由0变1产生上升沿时将数据发送给2#站点;2#站点监控接收缓冲区MB0~MB9。
图 18-变量表监控
7. 总结
本文举例描述了如何通过PLCSIM V5.4 SP3仿真两个S7-400 PLC之间基于TCP/IP的S7通讯,对于两个以上的PLC之间的S7通讯仿真,PLCSIM同样支持。除此之外PLCSIM还支持S7-400基于 MPI的S7通讯以及S7-400基于DP的S7通讯的仿真。
订货号
PROFIBUS网络部件:
网卡及电缆
6ES7 972-0CB20-0XA0
6ES7 972-0CB35-0XA0
6ES7 972-0CC35-0XA0
6GK1 561-1AA01
6GK1 551-2AA00
6GK1 561-3AA01
6GK1 561-3FA00
6GK1 561-4AA01
6GK1 561-4FA00
6GK1562-1AA00
6GK1571-1AA00
6FX800开头
6XV1 840-2AH10
6FC5210-0DF22-2AA0
6XV1 830-0PBH30
6XV1 830-0EH10
6XV1 830-3EH10
6XV1 830-0AH10
6XV1 820-5AH10
6XV1 820-5BH50
6XV1 820-5BT10
6GK1 901-0DA20-0AA0
6ES7 901-0BF00-0AA0
6ES7 901-1BF00-0XA0
链接模板
6GK1 415-2AA01
6GK1 415-0AA01
6ES7 158-0AD01-0XA0
6ES7 157-0AC83-0XA0
6ES7 157-0AD82-0XA0
6XV1831-2L 紫色拖缆 可弯曲3百万次
6XV1830-5GH10
6GK1 900-0HL00-0AA0 BFOC接头连接工具
6SE7090-0XX84-0FF5 板子
6SE7090-0XX84-0AB0
6SE7038-6GL84-1BG2
6SE7031-2HF84-1BG0