商铺名称:上海拓关自动化科技有限公司
联系人:易歌(先生)
联系手机:
固定电话:
企业邮箱:3398372149@qq.com
联系地址:上海市金山区泾宾路501弄
邮编:
联系我时,请说是在焊材网上看到的,谢谢!
一、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,如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-300/400与SINAMICS G150 之间通过PROFIBUS DP 总线可进行周期性及非周期性数据通讯。使用标准S7功能块SFC14/SFC15可实现周期性数据交换;使用标准S7功能块SFC58 / SFC59,可以实现非周期性数据交换,读写 SINAMICS G150 的参数。S7-300/400与SINAMICS G150装置的连接,如下图所示:
图1 S7-300/400与SINAMICS G150装置的连接
2 SINAMICS G150站地址设置及硬件组态
SINAMICS G150的PROFIBUS DP站地址设置有两种方法:
(1)通过CU320控制单元上DIP拨码开关,设置站地址,有效地址值为1….126,设定方法如表1所示,将DIP开关拨“ON”处,多个开关激活,将有效位进行加法运算, 1+4+32=37,表示站地址是37,注意:通过拨码开关改变地址时应断掉SINAMICS G150 电源,否则,更改的站地址是无效的。
表1 DIP开关设定PROFIBUS DP地址
(2) 在拨码开关全部拨到OFF或ON状态,可以利用参数P918设置站地址。
S7-300/400的硬件组态,如图2所示,在硬件组态中设定的SINAMICS G150站地址应与SINAMICS G150 实际的站地址一致,本例中采用站地址是6。
图2 硬件组态
3 通讯报文设置
SINAMICS G150有多种报文结构进行选择,详细描述请参考:SINAMICS_G150_operating-instructions手册,表2为报文结构。
表2 报文结构
报文结构是999为用户自定义报文,当用户选择此报文结构时,SINAMICS G150的起、停控制位等需自己做关联。此时必须将PLC控制请求置1(P854=1)。
注意:在做S7-300/400硬件组态时,需要配置报文结构,图3是STEP7中的报文设置,配置结束后进行编译保存;然后,打开STARTER,核对报文结构是否一致,图4是STARTER软件中报文的设置,若不一致需在STARTER软件中打开“configuration”做调整后点击“Transfer to HW config”按钮。
图3 STEP7中的报文设置
图4 STARTER软件中报文设置
4 用PROFIBUS DP总线对SINAMICS G150起、停及速度控制
S7-300/400 PLC通过PROFIBUS DP周期性通讯方式将控制字1和主设定值发送至SINAMICS G150 ,当组态的报文结构 PZD=2或自由报文999时,在S7-300/400 中可用“MOVE” 指令和功能块SFC14和SFC15进行数据传送。
下面分别采用“MOVE” 指令进行数据传送和调用SFC14和SFC15系统功能块进行数据传送加以说明。
例程文件名为:“G150_DP控制字、主给定值的发送及状态字和实际频率读出程序.rar”,链接: G150_DP1.rar