上海赞国自动化科技有限公司
上海赞国自动化科技有限公司(西门子分销商)
我公司只销售西门子原装正品,享受西门子免费一年保修
联系人: 田工(SIEMENS)
传真(Fax):-021-67633621
联系QQ :187047001
24小时销售技术服务热线 ;18721188295(微信同号)
地址(Add):上海市松江区新松江路久阳文华府邸2218弄6号
一、S7 Open IE通讯概述
可以通过S7-300/400 PLC集成的 PROFINET 接口使用基于工业以太网的开放式通信与Simotion设备进行数据交换,下列通信协议支持开放式通讯:
• TCP
• UDP
PLC 通过工业以太网 OPEN IE 通信方式下的 TCP IP 协议进行数据交换,需要使用以下程序块:
• FB65 "TCON" 建立连接
• FB66 "TDISCON" 中止连接
• FB63 "TSEND" 发送数据
• FB64 "TRCV" 接收数据
这些通信功能块可以在函数库 Standard Library -> Communication Blocks 中找到。 用于连接 TCP IP 端点的参数存储于一个数据结构体中。在本程序示例中,使用数据结构体 UDT65 "TCON_PAR",用户将对这个数据结构体进行参数化。不需要在 NetPro 中配置通信连接。UDT65的创建需要使用 Open IE向导来完成。
创建开放式 TCP/IP 通信所需的连接数据的向导 (Open Communication Wizard)请从下述链接中下载 : 25209116
二、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 接收程序
图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,如20016ES75152AM010AB0
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 下载项目
西门子代理商
西门子PLC代理商
西门子模块代理商
西门子中国代理商
西门子上海代理商
西门子PLC模块代理商
西门子PLC中国代理商
西门子PLC一级代理商
西门子PLC销售代理商
西门子PLC上海代理商
西门子扩展模块代理商
西门子模块中国代理商
西门子模块上海代理商
西门子模块一级代理商
西门子PLC模块中国代理商
西门子PLC模块上海代理商
西门子PLC模块一级代理商
西门子PLC扩展模块代理商
西门子扩展模块中国代理商
西门子扩展模块上海代理商
西门子扩展模块一级代理商
西门子电源模块代理商
西门子电源模块一级代理商
西门子电源模块中国代理商
西门子电源模块上海代理商
西门子通信模块代理商
西门子通信模块上海代理商
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。