SIMOTION工业以太网通信入门文档格式.docx
《SIMOTION工业以太网通信入门文档格式.docx》由会员分享,可在线阅读,更多相关《SIMOTION工业以太网通信入门文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
![SIMOTION工业以太网通信入门文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/2/1204200b-60f3-47fd-9b8e-721a247b7f10/1204200b-60f3-47fd-9b8e-721a247b7f101.gif)
使用Sub-D接头进行连接的网络连接牢固,不易松动。
其连线方法及9/15接头的转换可以查阅西门子手册。
同样ITP电缆也会有交叉连接的情况,可以直接定购ITPXP标准电缆。
SIMOTION只有RJ45以太网接口,通常不使用工业双绞线ITP。
1.3光纤
按光在光纤中的传输模式不同,光纤可分为单模光纤和多模光纤。
多模光纤:
中心玻璃芯较粗(50或62.5μm),可传多种模式的光。
但其模间色散较大,这就限制了传输数字信号的频率,而且随距离的增加会更加严重。
例如:
600MB/KM的光纤在2KM时则只有300MB的带宽了。
因此,多模光纤传输的距离就比较近,一般只有几公里。
单模光纤:
中心玻璃芯较细(芯径一般为9或10μm),只能传一种模式的光。
因此,其模间色散很小,适用于远程通讯,但其色度色散起主要作用,这样单模光纤对光源的谱宽和稳定性有较高的要求,即谱宽要窄,稳定性要好。
光纤技术只允许点对点的连接,即一个发送装置只对应一个接收装置。
因而两个站点之间需要有发送和接收两根光纤进行连接。
所有SIMATICNET标准的光缆都是两根光纤。
光纤的连接头有很多种如图7所示:
图7光纤的连接头
其中各种连接头都有各自的优点,例如:
ST连接头安装简易,比较适合于现场连接,(西门子BFOC接头就是ST接头);
FC接头有一个不固定的套环,可以提供较好的机械的隔离;
SC连接头适合紧密连接,其推拉设计可以避免在安装过程中的光纤平面受损,应用比较普遍。
在西门子的网络设备中,大多光纤链路设备使用BFOC接头。
光纤通讯应用于工业以太网的优点:
隔离电气的站点或网段
没有电气的接地问题
没有屏蔽电流
数据传输不受外界电磁干扰
不受雷电的影响
不会产生电磁干扰
重量轻
根据光纤的类型不同,长距离的通讯依然可以保持高的通讯波特率
带有RJ45接头的SIMOTION可以直接连接到交换机的电气接口上,交换机之间可以通过光纤连接,增加通信距离和抗干扰性。
2.SIMOTION工业以太网网络拓扑结构
通过西门子交换机组成的以太网有三种网络拓扑结构:
1)总线型;
2)星型;
3)冗余环网。
图8所示为SCALANCE200组成的冗余环网。
图8冗余环网示例
3.配置SIMOTION以太网接口
3.1在硬件配置中设定以太网接口
在SCOUT界面中点击SIMOTIONCPU,右键点击“OpenHWconfiguration”进入硬件配置界面,例如D435,X120和X130为以太网接口,双击选择的通信接口,在弹出的界面中定义IP地址和子网掩码,如图9所示:
图9设定通信接口
注意:
即使建立两条以太网,两个以太网通信接口不能设置在相同的网段中或相同的IP地址。
3.2在线联机设定以太网接口
将编程器连接到SIMOTION以太网接口上,在控制面板“SettingthePG/PCInterface”接口中将访问点指向使用的编程网卡例如“S7ONLINE(STEP7)->
TCP/IP->
Intel(R)PRO/1000MT”。
打开SIMATICManager,使用菜单命令“PLC”->
“EditEthernetNodes”在界面中选择“Browse”键浏览网络上所有的站点,如图10所示:
图10浏览网络上的站点
每一个接口在硬件的前面板标有网卡的MAC地址,选择站点,在“EditEthernetNodes”界面中设置IP地址和子网掩码,点击“AssignIPConfiguration”键传送设定的命令。
如图11所示:
图11设置站点地址
IP地址设置完成后,可以使用以太网接口编程。
4.编写通信程序
通过以太网进行站点间的通信有两种方式:
1)UDP;
2)TCP。
4.1UDP通信方式
UDP通信协议不需要在通信前建立连接,在发送和接收的数据报文中带有通信方的IP地址和端口号。
通信函数存储于在“Communication”->
“Datatransfer”目录下,在发送方调用发送函数的示例程序如图12所示(使用LAD编写):
图12UDP发送程序
发送函数参数解释如下:
SourcePort
发送方的端口号,数据类型UINT,例如2001。
DestinationAddress
接收方的IP地址,数据类型为数组,ARRAY[0..3]OFUSINT,在4个字节中输入接收方的IP地址,例如192、168、0、122,表示IP地址为192.168.0.122。
DestinationPort
接收方的端口号,数据类型UINT,例如2000。
CommunicationMode
通信模式,“EnumUdpCommunicationMode”枚举数据类型,有两种选择:
(1)“CLOSE_ON_EXIT”,通信完成后释放通信资源;
(2)“DO_NOT_CLOSE_ON_EXIT”,通信完成后仍占用通信资源。
DataLength
发送的数据长度,数据类型UDINT,最大长度1400字节。
Data
发送数据区,数据类型为数组,ARRAY[0..1399]OFBYTE。
OUT
发送函数状态信息,数据类型DINT。
在数据接收方调用接收函数的示例程序如图13所示:
图13UDP接收程序
接收函数参数解释如下:
Port
定义本方的端口号,数据类型为UINT。
定义的端口号必须与发送方参数“DestinationPort”指定的端口号相同。
通信模式,与发送函数通信模式相同。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY”、“WHEN_COMMAND_DONE”和“ABORT_CURRENT_COMMAND”。
“IMMEDIATELY”:
接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE”:
接收命令执行或失败后执行后续的命令,异步执行。
“ABORT_CURRENT_COMMAND”:
终止当前的任务后执行执行后续的命令。
ReceiveVariable
数据接收区,数据类型为数组,ARRAY[0..1399]OFBYTE。
接收函数信息,包括接收数据的源地址和端口、状态信息等,数据类型为结构体,接收函数信息参考表1:
表1:
接收函数信息
结构
名称
数据类型
函数调用信息
结果
DINT
数据源地址
发送方IP地址
ARRAY[0..3]OFUSINT
数据源端口
发送方端口
UINT
接收数据长度
接收到有效字节数
UDINT
4.2TCP通信方式
TCP通信方式在发送接收数据前必须建立通信连接,连接需要在通信双方编程建立。
主动连接的一方作为客户端,被动连接的一方作为服务器。
下面以SIMOTIOND435与S7-300CP343-1通信为例介绍TCP通信方式。
4.2.1在PLC侧建立通信连接
在STEP7项目下创建S7-300站点,插入以太网通信处理器CP343-1,选择与SIMOTION在相同的网络上。
在NETPRO中点击CPU,在下面的连接表中插入一个连接如图14所示:
图14建立TCP连接
连接的站点选择“Unspecified”,连接方式选择“TCPconnection”,点击“Apply”键确认进入连接属性界面,如图15所示:
图14配置TCP常规信息
在“GeneralInformation”栏中,“BlockParameters”参数显示CP343-1的地址及连接号,这两个参数也是PLC调用发送和接收通信功能块赋值参数。
“Activeconnectionestablishment”选项决定通信双方哪一个是主动连接(客户端),哪一个是被动连接(数据服务器)。
选择该选项为主动连接,在SIMOTION侧需要调用函数“_tcpOpenServer”与PLC建立连接,如果没有选择该选项为被动连接,在SIMOTION侧需要调用函数“_tcpOpenClient”与PLC建立连接。
本例中选择PLC为数据服务器,SIMOTION为客户端。
点击“Address”栏配置SIMTION的IP地址及端口号,如图15所示:
图15配置通信方IP地址
配置完成后将配置选项下载到PLC中。
4.2.2在SIMOTION侧建立通信连接
与PLC在NETPRO中创建连接不同,在SIMOTION侧需要调用函数建立连接,通信函数存储于在“Communication”->
“Datatransfer”目录下,函数调用的示例程序参考图16:
图16SIMOTION侧建立TCP连接(客户端)
函数参数解释如下:
SIMOTION端口号,数据类型UINT,在NETPRO中定义为2001。
ServerAddress
PLC的IP地址,数据类型为数组,ARRAY[0..3]OFUSINT,在4个字节中输IP地址,例如192、168、1、112,表示IP地址为192.168.1.112。
ServerPort
PLC的端口号,数据类型UINT,例子程序中在NETPRO定义为2000。
枚举数据类型,元素中包括“IMMEDIATELY”、“WHEN_COMMAND_DONE。
调用函数返回信息,包括调用状态和连接号。
数据类型为结构体(StructRetTcpOpenClient),返回信息参考表2:
表2:
TCP客户端连接函数返回信息
functionResult
状态信息,可以查看通信连接是否建立
connectionId
连接号,用于发送和接收函数的参数赋值
连接函数调用一次,得到连接号后停止调用。
此函数调用需用上升沿信号进行使能。
4.2.3在PLC侧编写通信程序
通信连接建立后,在通信双方需要编写通信函数或通信功能块。
在S7-300PLC侧OB35中(间隔发送)调用发送功能块FC5AG_SEND(“Libraries”->
“StandardLibrary”->
“SIMATIC_NET_CP”->
“CP300”,示例程序如下:
CALL"
AG_SEND"
ACT:
=TRUE
ID:
=1
LADDR:
=W#16#100
SEND:
=P#DB1.DBX0.0BYTE60
LEN:
=60
DONE:
=M1.2
ERROR:
=M1.3
STATUS:
=MW2
通信函数FC5的参数含义:
ACT:
为1触发。
ID:
参考本地CPU连接表中的块参数。
LADDR:
发送区。
最大通信数据为8192字节。
与SIMOTION之间最大4096个字节。
实际发送数据长度。
DONE:
每次发送成功,产生一个上升沿。
ERROR:
错误位。
STATUS:
通讯状态字。
示例程序中S7-300PLC发送DB1中前60个字节。
在通信方CPUOB1中调用接受函数FC6AG_RECV(“Libraries”->
AG_RECV"
RECV:
=P#DB2.DBX0.0BYTE60
NDR:
=M10.1
=M10.2
=MW12
=MW14
通信函数FC6的参数含义:
接收区。
接收区应等于发送区。
每次接收到新数据,产生一个上升沿。
实际接收数据长度。
示例程序中S7-300PLC将接收的数据存储于本地数据区DB2的前60个字节中。
4.2.4在SIMOTION侧编写通信程序
在PLC侧调用发送和接收功能块,在SIMOTION侧相应调用发送和接收函数与之相匹配,通信函数存储于在“Communication”->
“Datatransfer”目录下,发送函数调用的示例程序参考图17,发送函数与PLC的接收功能块相匹配。
图17调用发送函数
ConnectionId
参考_TcpOpenClient函数建立的连接。
发送数据的字节长度,数据类型为UDINT,例子中为60,发送数据区Data中前60个字节。
发送数据区,数据类型为数组,ARRAY[0..4095]OFBYTE。
输出通信状态,数据类型为DINT。
接收函数调用的示例程序参考图18,接收函数与PLC的发送功能块相匹配。
图18调用接收函数
数据接收区,数据类型为数组,ARRAY[0..4095]OFBYTE,最大4096字节。
调用函数返回信息,包括调用状态和接收的字节数量。
数据类型为结构体(StructRetTcpReceive),返回信息参考表3:
表3:
接收函数返回信息
接收状态信息
dataLength
接收字节长度
PLC的接收区和发送区必须与SIMOTION的接收区和发送区相同。
UDP示例程序参考附带文件“SIMOTION_UDP”.ZIP
TCP示例程序参考附带文件“SIMOTION_TCP”.ZIP
上面介绍了SIMOTION与PLCCP343-1的通信,PLC作为数据的服务器,同样SIMOTION也可以作为数据的服务器,只是建立连接的初始化过程不同。
SIMOTION与SIMOTION、SIMOTION与CPUPN接口、SIMOTION与PC机通过VBSOCKET控件之间的通信可以参照上面的例子。
关键词
SIMOTION工业以太网通信