学好PLC,老电工教你认知S7-300 PLC主从站之间的 Profibus通讯
CP342-5作主站与 FC1(DP_SEND),FC2(DP_RECV)的应用CP342-5是 S7-300 系列的 PROFIBUS 通讯模块,带有 PROFIBUS 接口,可以作为 PROFIBUS-DP 的主站也可以作为从站,但不能同时作主站和从站,而且只能在 S7-300 的中央机架上使用,不能放在分布式从站上使用。
由于 S7-300 系统的 I区和 Q 区有限,通讯时会有些限制;而用 CP342-5 作为 DP 主站和从站不一样,它对应的通讯接口区不是 I 区和 Q 区,而是虚拟通讯区,需要调用 FC1 和 FC2 建立接口区,下面以例子来介绍 CP342-5 作为主站的使用方法。
一、所需硬件和软件
软件: STEP 7 V5.2
硬件: 1.PROFIBUS-DP 主站带 CP342-5 的 S7-300 CPU315-2DP
从站选用 ET200M
MPI网卡 CP5611
PROFIBUS 电缆及接头
二、网络配置图
带 CP342-5 的S7 CPU315-2DP 的网络配置图如下图所示:
此组态实例是选用 CP342-5 接口作为主站和 ET200 M组成 PROFIBUS 网络。首先,将 CP342-5 插在 S7-300 的中央机架上,用一条 PROFIBUS 总线将 CP342-5 和ET200M 相连接。
三、组态
打开 SIMATIC MANAGER 软件,在 FILE 菜单下选择 NEW 新建一个项目,在 NAME 栏中输入项目名称,将其命名为“CP342-5_master”,在下方的 Storage Location中设置其存储位置,如下图:
在项目窗口的左侧选中该项目,按右键在弹出的下拉菜单中选择 Insert New Object 和 SIMATIC 300 Station插入一个 S7-300 站,则插入的 S7-300 站即显示在右侧的窗口。
双击 SIMATIC 300 Station目录下的 hardware 图标,打开 HW configuration进行硬件组态。在 HW configuration 主界面的右侧按实际硬件安装顺序完成系统硬件组态。在菜单栏中选择“View”菜单,并在下拉菜单中选择“Catalog”打开硬件目录;在左侧目录中打开 SIMATIC 300 文件夹,在 RACK-300 下选择一个机架,把选用的机架拖到屏幕的左上方。
同时在 2 号槽和 4 号槽分别插入CPU 和 CP342-5 模块。在配置 CPU 时,会自动弹出一个对话框,此时不用做任何设置,直接点击 OK 即可。由于在该实例中,将 CP342-5 作为主站,配置CP342-5 网络设置时,先新建一条 PROFIBUS 网络,然后组态 PROFIBUS 属性如下图:
本例中选择传输速率为“1.5Mbps”和“DP”行规,无中继器和 OBT 等网络元件,点击“OK”按钮确认。然后定义 CP342-5 的站地址,本例中为 2 号站,加入 CP 后,双击该栏,在弹出的对话框中,选择“Operating Mode”标签,选择“DP master”模式,如下图:
四、编程
在 OB1 中调用 FC1 和 FC2,FC1 和 FC2 的位置如右图,具体程序如下:
参数含义:
CPLADDR:CP342-5 的地址。
SEND:发送区,对应从站的输出区。
RECV:接收区,对应从站的输入区。
DONE:发送完成一次产生一个脉冲。
NDR: 接收完成一次产生一个脉冲。
ERROR:错误位。
STATUS:调用 FC1,FC2 时产生的状态字。
DPSTATUS:PROFIBUS-DP 的状态字节。
从上面我们可以看出,MB20,MB21 对应从站输出的第一个字节和第二个字节,MB22,MB23 对应从站输入的第一个字节和第二个字节。连接多个从站时,虚拟地址将向后延续和扩大,调用 FC1,FC2 只考虑虚拟地址的长度,而不会考虑各个从站的站号。
如果虚拟地址的开始地址不为 0,那么调用 FC 的长度也将会增加,假设:虚拟地址的输入区开始为 4,长度为 10 个字节,那么对应的接收区偏移 4 个字节相应长度为 14 个字节,接收区的第 5 个字节对应从站输入的第一个字节,如接收区为 P#M0.0 BYTE 14 ,MB0~MB13,偏移 4 个字节后,MB4~MB13 与从站虚拟输入区一一对应。
编完程序下载到 CPU 中,通讯区建立后,PROFIBUS 的状态灯将不会闪烁,例 子 程 序 参 见 光 盘 “ PROFIBUS” 目 录 下 的 项 目 名 “ CP342-5_MASTER”。
注意:
使用 CP342-5 作为主站时,因为本身数据是打包发送,不需要调用 SFC14,SFC15,由于 CP342-5 寻址的方式是通过 FC1,FC2 的调用访问从站地址,而不是直接访问 I/Q 区,所以在 ET200M 上不能插入智能模块,如:FM350-1、FM352 等项,所有从站的 Ti To 时间保持一致。
以上欢迎分享及收藏!
SIMOTION 工业以太网通信入门
1.SIMOTION工业以太网网络介质西门子工业以太网网络通常使用的物理传输介质为屏蔽双绞线(FC TP)、工业屏蔽双绞线(ITP)和光纤。
1.1 屏蔽双绞线(Fast Connection Twist Pair)
FC TP快速连接双绞线用于将DTE快速连接到工业以太网上,配合西门子FC TP RJ45接头使用,连接方式如图1所示:
图1: FC TP电缆与TP RJ45接头
将双绞线按照TP RJ45接头标示的颜色插入连接孔中,快捷、方便地将DTE设备连接到工业以太网上。使用FC双绞线从DTE到交换机最长通信距离为100米(DTE到DTE)。也可以使用普通RJ45接头,为了保证数据传输的可靠性,在无干扰情况下最长通信距离为5米。
RJ-45连接有两种连接方式,交叉连接(如图2所示)和直通连接(如图3所示)。交叉连接用于网卡之间的连接或集线器之间的连接;直通线用于网卡与集线器之间或网卡与交换机之间的连接。Siemens交换机由于采用了自适应技术,可以自动检测线序,故通过交换机可以选择任意一种电缆进行连接。
图2 交叉线连接
图3 直通线连接
SIMOTION 带有RJ45接头,建议使用西门子FC TP和FC TP RJ45接头。
1.2 工业屏蔽双绞线 (Industrial Twisted Pair)
屏蔽双绞线如图4所示,它有白/蓝和白/橙两对双绞屏蔽线。外部包有屏蔽层和绝缘层,用于连接有ITP端口的以太网设备。通过ITP电缆连接的两个设备的最远距离为100米。
图4 ITP电缆结构图
连接ITP电缆的连接头有两种,即 9 针或 15 针的Sub-D 接头,如图所示5、6:
图5 Sub-D 9针接头
图6 Sub-D 15针接头
使用Sub-D 接头进行连接的网络连接牢固,不易松动。其连线方法及9/15 接头的转换可以查阅西门子手册 。同样ITP 电缆也会有交叉连接的情况,可以直接定购 ITP XP 标准电缆 。
SIMOTION只有RJ45以太网接口,通常不使用工业双绞线ITP。
1.3光纤
按光在光纤中的传输模式不同,光纤可分为单模光纤和多模光纤。
多模光纤:中心玻璃芯较粗(50或62.5μm),可传多种模式的光。但其模间色散较大,这就限制了传输数字信号的频率,而且随距离的增加会更加严重。例如:600MB/KM的光纤在2KM时则只有300MB的带宽了。因此,多模光纤传输的距离就比较近,一般只有几公里。
单模光纤:中心玻璃芯较细(芯径一般为9或10μm),只能传一种模式的光。因此,其模间色散很小,适用于远程通讯,但其色度色散起主要作用,这样单模光纤对光源的谱宽和稳定性有较高的要求, 即谱宽要窄,稳定性要好。
光纤技术只允许点对点的连接,即一个发送装置只对应一个接收装置。因而两个站点之间需要有发送和接收两根光纤进行连接。所有SIMATIC NET 标准的光缆都是两根光纤。光纤的连接头有很多种如图7所示:
图7 光纤的连接头
其中各种连接头都有各自的优点,例如:ST 连接头安装简易,比较适合于现场连接,(西门子BFOC接头就是ST 接头);FC 接头有一个不固定的套环,可以提供较好的机械的隔离;SC 连接头适合紧密连接,其推拉设计可以避免在安装过程中的光纤平面受损,应用比较普遍。在西门子的网络设备中,大多光纤链路设备使用BFOC接头。
光纤通讯应用于工业以太网的优点:
隔离电气的站点或网段
没有电气的接地问题
没有屏蔽电流
数据传输不受外界电磁干扰
不受雷电的影响
不会产生电磁干扰
重量轻
根据光纤的类型不同,长距离的通讯依然可以保持高的通讯波特率
带有RJ45接头的SIMOTION 可以直接连接到交换机的电气接口上,交换机之间可以通过光纤连接,增加通信距离和抗干扰性。
2.SIMOTION工业以太网网络拓扑结构
通过西门子交换机组成的以太网有三种网络拓扑结构:1)总线型;2)星型;3)冗余环网。图8所示为SCALANCE 200组成的冗余环网。
图8 冗余环网示例
3.配置SIMOTION以太网接口
3.1在硬件配置中设定以太网接口
在SCOUT界面中点击SIMOTION CPU,右键点击“Open HW configuration”进入硬件配置界面,例如D435,X120和X130为以太网接口,双击选择的通信接口,在弹出的界面中定义IP地址和子网掩码,如图9所示:
图9 设定通信接口
注意:
即使建立两条以太网,两个以太网通信接口不能设置在相同的网段中或相同的IP地址。
3.2 在线联机设定以太网接口
将编程器连接到SIMOTION 以太网接口上,在控制面板“Setting the PG/PC Interface”接口中将访问点指向使用的编程网卡例如“S7ONLINE(STEP7)->TCP/IP -> Intel(R) PRO/1000 MT ”。打开SIMATIC Manager,使用菜单命令“PLC”->“Edit Ethernet Nodes”在界面中选择“Browse”键浏览网络上所有的站点,如图10所示:
图10 浏览网络上的站点
每一个接口在硬件的前面板标有网卡的MAC地址,选择站点,在“Edit Ethernet Nodes”界面中设置IP地址和子网掩码,点击“Assign IP Configuration”键传送设定的命令。如图11所示:
图11设置站点地址
IP地址设置完成后,可以使用以太网接口编程。
4.编写通信程序
通过以太网进行站点间的通信有两种方式:1)UDP;2)TCP。
4.1 UDP通信方式
UDP通信协议不需要在通信前建立连接,在发送和接收的数据报文中带有通信方的IP地址和端口号。通信函数存储于在“Communication”->“Data transfer”目录下,在发送方调用发送函数的示例程序如图12所示(使用LAD编写):
图12 UDP发送程序
发送函数参数解释如下:
SourcePort
发送方的端口号,数据类型UINT,例如2001。
DestinationAddress
接收方的IP地址,数据类型为数组,ARRAY [0..3] OF USINT,在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] OF BYTE。
OUT
发送函数状态信息,数据类型DINT。
在数据接收方调用接收函数的示例程序如图13所示:
图13 UDP接收程序
接收函数参数解释如下:
Port
定义本方的端口号,数据类型为UINT。定义的端口号必须与发送方参数“DestinationPort”指定的端口号相同。
CommunicationMode
通信模式,与发送函数通信模式相同。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE”和“ABORT_CURRENT_COMMAND”。
“IMMEDIATELY”:接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE”:接收命令执行或失败后执行后续的命令,异步执行。
“ABORT_CURRENT_COMMAND”:终止当前的任务后执行执行后续的命令。
ReceiveVariable
数据接收区,数据类型为数组,ARRAY [0..1399] OF BYTE。
OUT
接收函数信息,包括接收数据的源地址和端口、状态信息等,数据类型为结构体,接收函数信息参考表1:
表1:接收函数信息
4.2 TCP通信方式
TCP通信方式在发送接收数据前必须建立通信连接,连接需要在通信双方编程建立。主动连接的一方作为客户端,被动连接的一方作为服务器。下面以SIMOTION D435与S7-300 CP343-1通信为例介绍TCP通信方式。
4.2.1在PLC侧建立通信连接
在STEP7项目下创建S7-300站点,插入以太网通信处理器CP343-1,选择与SIMOTION在相同的网络上。在NETPRO中点击CPU,在下面的连接表中插入一个连接如图14所示:
图14 建立TCP连接
连接的站点选择“Unspecified”,连接方式选择“TCP connection”,点击“Apply”键确认进入连接属性界面,如图15所示:
图14 配置TCP常规信息
在“General Information”栏中,“Block Parameters”参数显示CP343-1的地址及连接号,这两个参数也是PLC调用发送和接收通信功能块赋值参数。“Active connection establishment”选项决定通信双方哪一个是主动连接(客户端),哪一个是被动连接(数据服务器)。选择该选项为主动连接,在SIMOTION 侧需要调用函数“_tcpOpenServer”与PLC建立连接,如果没有选择该选项为被动连接,在SIMOTION 侧需要调用函数“_tcpOpenClient” 与PLC建立连接。本例中选择PLC为数据服务器,SIMOTION为客户端。
点击“Address”栏配置SIMTION的IP地址及端口号,如图15所示:
图15 配置通信方IP地址
配置完成后将配置选项下载到PLC中。
4.2.2在SIMOTION侧建立通信连接
与PLC在NETPRO中创建连接不同,在SIMOTION侧需要调用函数建立连接,通信函数存储于在“Communication”->“Data transfer”目录下,函数调用的示例程序参考图16:
图16 SIMOTION侧建立TCP连接(客户端)
函数参数解释如下:
Port
SIMOTION 端口号,数据类型UINT,在NETPRO中定义为2001。
ServerAddress
PLC的IP地址,数据类型为数组,ARRAY [0..3] OF USINT,在4个字节中输IP地址,例如192、168、1、112,表示IP地址为192.168.1.112。
ServerPort
PLC的端口号,数据类型UINT,例子程序中在NETPRO定义为2000。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE”:接收命令执行或失败后执行后续的命令,异步执行。
OUT
调用函数返回信息,包括调用状态和连接号。数据类型为结构体(StructRetTcpOpenClient),返回信息参考表2:
表2:TCP 客户端连接函数返回信息
连接函数调用一次,得到连接号后停止调用。
注意:此函数调用需用上升沿信号进行使能。
4.2.3在PLC侧编写通信程序
通信连接建立后,在通信双方需要编写通信函数或通信功能块。在S7-300 PLC侧OB35中(间隔发送)调用发送功能块FC5 AG_SEND(“Libraries”->“Standard Library”->“SIMATIC_NET_CP”->“CP300”,示例程序如下:
CALL "AG_SEND"
ACT :=TRUE
ID :=1
LADDR :=W#16#100
SEND :=P#DB1.DBX 0.0 BYTE 60
LEN :=60
DONE :=M1.2
ERROR :=M1.3
STATUS:=MW2
通信函数FC5的参数含义:
ACT :为1触发。
ID :参考本地CPU连接表中的块参数。
LADDR :参考本地CPU连接表中的块参数。
SEND : 发送区。最大通信数据为8192字节。与SIMOTION之间最大4096个字节。
LEN : 实际发送数据长度。
DONE :每次发送成功,产生一个上升沿。
ERROR :错误位。
STATUS:通讯状态字。
示例程序中S7-300 PLC发送DB1中前60个字节。
在通信方CPU OB1中调用接受函数FC6 AG_RECV(“Libraries”->“Standard Library”->“SIMATIC_NET_CP”->“CP300”,示例程序如下:
CALL "AG_RECV"
ID :=1
LADDR :=W#16#100
RECV :=P#DB2.DBX 0.0 BYTE 60
NDR :=M10.1
ERROR :=M10.2
STATUS:=MW12
LEN :=MW14
通信函数FC6的参数含义:
ID :参考本地CPU连接表中的块参数。
LADDR :参考本地CPU连接表中的块参数。
RECV : 接收区。接收区应等于发送区。
NDR : 每次接收到新数据,产生一个上升沿。
ERROR :错误位。
STATUS:通讯状态字。
LEN : 实际接收数据长度。
示例程序中S7-300 PLC将接收的数据存储于本地数据区DB2的前60个字节中。
4.2.4在SIMOTION侧编写通信程序
在PLC侧调用发送和接收功能块,在SIMOTION侧相应调用发送和接收函数与之相匹配,通信函数存储于在“Communication”->“Data transfer”目录下,发送函数调用的示例程序参考图17,发送函数与PLC的接收功能块相匹配。
图17 调用发送函数
发送函数参数解释如下:
ConnectionId
参考_TcpOpenClient函数建立的连接。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE”:接收命令执行或失败后执行后续的命令,异步执行。
DataLength
发送数据的字节长度,数据类型为UDINT,例子中为60,发送数据区Data中前60个字节。
Data
发送数据区,数据类型为数组,ARRAY [0..4095] OF BYTE。
OUT
输出通信状态,数据类型为DINT。
接收函数调用的示例程序参考图18,接收函数与PLC的发送功能块相匹配。
图18 调用接收函数
接收函数参数解释如下:
ConnectionId
参考_TcpOpenClient函数建立的连接。
NextCommand
枚举数据类型,元素中包括“IMMEDIATELY ”、“WHEN_COMMAND_DONE。
“IMMEDIATELY”:接收命令与后续所要执行的命令同步执行。
“WHEN_COMMAND_DONE”:接收命令执行或失败后执行后续的命令,异步执行。
ReceiveVariable
数据接收区,数据类型为数组,ARRAY [0..4095] OF BYTE,最大4096字节。
OUT
调用函数返回信息,包括调用状态和接收的字节数量。数据类型为结构体(StructRetTcpReceive),返回信息参考表3:
表3: 接收函数返回信息
注意:
PLC的接收区和发送区必须与SIMOTION的接收区和发送区相同。
UDP示例程序参考附带文件“SIMOTION_UDP”.ZIP
TCP示例程序参考附带文件“SIMOTION_TCP”.ZIP
上面介绍了SIMOTION与PLC CP343-1的通信,PLC作为数据的服务器,同样SIMOTION也可以作为数据的服务器,只是建立连接的初始化过程不同。SIMOTION与 SIMOTION、SIMOTION与CPU PN接口、SIMOTION与PC机通过VB SOCKET控件之间的通信可以参照上面的例子。
相关问答
BIOS中的HDDSTATUS空白代表什么意思?-ZOL问答
有的BIOS还有ODDStatus,其中ODD表示OpticalDiscDrive即光盘解决办法:关机后,打开机箱,检测硬盘是否存在。关闭电源,将硬盘线拔除后,重新插紧,然后重启如...
bcs是什么意思_作业帮
[最佳回答]BCSn.英国计算机协会BCS:BritishCardiacSociety英国心脏学会BCS:BachelorofComputerScience计算机科学学士学位BCS:Block...
CS是什么英文缩写_作业帮
[回答]ke反击cableship电缆敷设船captialstock股本cashsettlement现金结汇caststone人造石块,铸石centralsection中心截面Chann...
dsr是什么意思?
所谓dsr,就是DetailSellerRating的简写,意思是卖家服务评级系统。淘宝dsr评分主要包括店铺的好评率、宝贝与描述是否相符的评分、卖家的服务态度如何的评分...
...时监控电池的运行过程,判断电池的运行状态,并及时与整车通讯.
[最佳回答]dynamicbatteryusuallyworksincomparativelyhardenviromentwhichleadtomalfunctionorshortli...
wechat用英语描述作用?
微信是一种更快速的即时通讯工具,具有零资费、跨平台沟通、显示实时输入状态等功能,与传统的短信沟通方式相比,更灵活、智能,且节省资费。用英语描述就...微...
为什么浏览网页出现错误的时候会报404而不是其他数字?404有怎样的含义?
这个404实际上是根据万维网错误代码而得到的:所以404的含义是:第一个4表示客户端出错,第二个0表示你把网址打错了;最后表示这个错误代码在4开头的错误...
(A)什么意思不?-圆圆圈圈圆圆_的回答-懂得
这是我的回答,希望对你有帮助。第一步:设置电脑的IP地址和网关ADSL的设置是通过浏览器访问其设置页面而实现的。在默认的情况下,ADSL的IP地址为192...
【常用英文缩写大全】作业帮
[回答]CEO(ChiefExecutiveOfficer),即首席执行官,源自美国20世纪60年代进行公司治理结构改革创新时IT是什么意思?IT是指信息技术,即英文InformationTec...
CELLID:8993;LAC:6206;MCC:460;MNC:0;MCNDIGIT:2;STATUS:3-Z...
.....大概意思可能是“我晕。这都是什么东东?不要当作英语问题拿来乱搞。”呵呵建议你去在线翻译把每个数字前面的单词代号输入进去。能了解个大概意思...