在线工作*;842643577
通过工业以太网 OPEN IE 通信方式下的 TCP IP 协议进行数据交换,需要使用以下程序块:
• FB65 "TCON" 建立连接
• FB66 "*SCON" 中止连接
• 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所示:
6ES74221FH000AA0
图. 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*.cn/download/docMessage.aspx?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菜单栏Opti*->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#站点到PLCSIM前,需要再打开一个新的PLCSIM2进程如图15
图 15-新建
然后
图 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之间的S真PLCSIM同样支持。除此之外PLCSIM还支持S7-400基于 MPI的S7通讯以及S7-400基于DP的S7通讯的。
西门子编码器
西门子编码器6FX2001-2AB02
西门子编码器6FX2001-2AB50
西门子编码器6FC9320-3MN00
西门子编码器6FX2001-2AF00
西门子编码器6FX2001-2AC50
西门子编码器6FX2001-2CC50
西门子编码器6FX2001-2CB02
西门子编码器6FX2001-2EB02
西门子编码器6FX2001-2EC50
西门子编码器6FX2001-2CF00
西门子编码器6FX2001-2EF00
西门子编码器6FX2001-2GB02
西门子编码器6FX2001-2GC50
西门子编码器6FX2001-2GF00
西门子编码器6FX2001-3AB02
西门子编码器6FX2001-2GE02
西门子编码器6FX2001-3AC50
西门子编码器6FX2001-3CB02
西门子编码器6FX2001-3CB00
西门子编码器6FX2001-3EB02
西门子编码器6FX2001-3CC50
西门子编码器6FX2001-3EC50
西门子编码器6FX2001-3GB02
西门子编码器ROD320.020-2500
西门子编码器EWN 5194004205000
西门子步进电机6FC5548-0AB06-0AA0
西门子编码器联轴节6FX2001-7KF10
西门子步进电机6FC5548-0AB03-0AA0
西门子步进电机6FC5548-0AB08-0AA0
西门子步进电机6FC5548-0AB12-0AA0
西门子步进电机6FC5548-0AB18-0AA0
西门子步进驱动6FC5548-0AA02-0AA0
西门子步进电机6FC5548-0AB25-0AA0
西门子操作部件6FC5210-0DF22-0AA0
西门子步进驱动器
西门子步进驱动器及步进电机
西门子操作模块6FC5210-0DA00-1AA0
西门子操作模块6FC5210-0DA00-1AA1
西门子车床数控系统
西门子电机编码器
西门子电池盒6FC5247-0AA06-0AA0
西门子电机模块6SL3120-1TE13-0AA3
西门子电池6FC5247-0AA18-0AA0
西门子电源6EP1334-3BA00
西门子电源6EP1333-2AA00
西门子电*器6SN1111-0AA00-0BA1
西门子电源6EP1436-1SL11
西门子电源6EP1436-1SH01
西门子电源6EP1334-3BA00
西门子电源6EP1436-2BA00
西门子电源模块6EW1861-2AF
西门子电源6EP1436-3BA00
西门子电源模块6SL3130-7TE21-6AA3
西门子电源模块6SL3130-7TE25-5AA3
西门子电源模块6SL3130-7TE28-0AA3
西门子电源模块6SL3130-7TE23-6AA3
西门子电源模块6SL3130-7TE31-2AA3