CP342在profibus通信中的应用从站诊断文档格式.docx
《CP342在profibus通信中的应用从站诊断文档格式.docx》由会员分享,可在线阅读,更多相关《CP342在profibus通信中的应用从站诊断文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
双击“Hardware”选项,进入“HWConfig”窗口。
在配置CP342-5时先建一条PROFIBUS网络,选择属性,设置其速度为默许的s和DP通信模式。
然后概念CP342-5的站地址,本例为2。
加入CP后双击该栏,在弹出对话框中按图1所示设置operationmode为DP-master。
(2)硬件组态——组态ET200
图2.组态ET200
在“HW-Config”的窗口中点击“Catalog”,依次选择“profibusdp”->
“ET200M”,将其添加到profibus网络上并配置2字节的输出和2字节的输入,输入和输出地址均从0开始,如图2所示。
那个地址事实上不是300中实际的I/Q区,只是300虚拟的地址映射区,在挪用FC1和FC2时紧密相关,后面将会举例说明。
若是没有挪用FC1和FC2在硬件下载后CP342-5的状态灯“BUSF”将闪烁,当配置多个从站的时候虚拟地址将顺延。
(3)编程
a.将IW12发送到ET200的DO模块(IW12为s7-300的DI模块地址)
图3.通过CP342-5发送数据到ET200上DO模块
在S7-300中按图3编程,其中CPLADDR参数的设定和图1中地址属性相一致。
b.将ET200的DI模块的数据发送到S7-300中的DO模块(QW16为s7-300的DO模块地址)。
在S7-300中按图4编程。
图4.通过CP342-5从ET200上DI模块上接收数据
c.ET200中的模块地址是偏移地址,若是偏移地址不是从0开始的,要专门注意发送或接收区域的长度,必然要足够大。
(举例说明见图5)
Send区
:
对应ET200的DO模块
CP342-5模块地址
为起始地址,如果ET200的DI起始地址为20,所以到这20个字节尽管不用也必须保留。
发送区域的长度一定要足够大。
图5向ET200中模块偏移地址不为0DO模块发送数据
2.CPU41x-2(443_5)做主站,342-5做智能从站
(1)组态CP342-5,将其设置为从站(见图6)。
图6将CP342-5设为从站
(2)组态CPU41x-2(CP443_5)。
将CPU41x-2(CP443_5)设置为主站,在profibusdp->
configuredstations->
s7-300CP342-5,选择模块的型号要和从站上CP342-5的型号完全一致,将其拖入到profibus总线上,然后为其添加与CP342-5通信的虚拟模块(如图7所示)。
32个字节的输入
32个字节的输出
虚拟出的IO地址和本地IO地址不能相重
图7.组态CPU41x-2(CP443-5)
图9将300中数据接收到400中地址为QB0的模块
虚拟模板
中的程序。
将400中真实的输入模板IB0中的数据发送到300(如图8所示)。
将300中数据接收到400中(如图9所示)
图8将IB0中数据发送至300
将300中地址为IB9模块上的数据发送至400(如图10所示),在利用FC1功能时,send参数中传送字节数为32字节,这是由于硬件配置为32个字节,即便只需要的是mb50一个字节的传送。
图10将300中地址为IB9模块上的数据发送至400
将400中一个字节数据接收至300QB17模块中(如图11所示)。
图11将400中数据接收至300QB17模块中
3.CP342-5做主站,CP342-5做从站
(1)组态从站,具体设置见图6。
(2)组态主站,在profibusdp->
s7-300CP342-5,选择模块的型号要和从站上CP342-5的型号完全一致,将其拖入到profibus总线上,然后为其添加与CP342-5通信的虚拟模块(如图12所示)。
虚拟模块的地址事实上是做主站的CP342-5发送和接收的偏移地址,在利用FC1和FC2时要考虑其偏移量。
图12主站从站均为CP342-5的硬件配置
将主站模块地址为IW8的数据传送到从站地址为QW20的模块,将常量W#16#234从站发送到主站QW20模块,具体设置见表1。
表1:
主站从站均为CP342-5编程设置
主(master)
从(slave)
发送
Mov:
IW8->
MW104
接收
F2(DP_RECV)
CPLADDR:
W#16#110RECV:
P#MBYTE8
F1(DP_SEND)
W#16#110SEND:
MW40->
QW20
W#16#234->
MW200
MW204->
在挪用FC1和FC2时,发送接收长度必然若是8个字节,因为在硬件配置概念的时候确实是8个字节(4..11),见图12。
地址的偏移量是针对主站而言的,主站写程序的时候是要考虑偏移量的,主站发送虚拟模块有4个字节的偏移量,而FC1中设置发送的起始地址是M100故IW8对应的发送缓冲区的地址确实是MW104,同时也说明MB100到MB103的数据是永久不可能传送到该从站上去的。
一样,若是接收的虚拟模块有偏移量,在接收数据时也要考虑偏移量(在表1中以绿色字体表示)。
下装程序时应同时下装OB82,OB85,OB86,以避免硬件下装的进程中找不到模拟模块造成停机,硬件下装的时候CP板的信息要一路下装,不然可能致使CP板工作将会不正常。
三、CP342-5在扩展通信中的应用
1.S7connection
(1)在netpro中进行网络组态,以通信双均为CP342-5为例,如图13所示。
在硬件组态中,均设置CP342-5联网,工作于No-dp方式。
在netpro中插入连接,连接类型为s7-connection,连接成立在profibus网络上。
保留编译后将配置别离下装至两台300,下装完成后测试连接。
图13在netpro中建立s7connection连接
(2)编程
在通信两边按表2编制程序。
两台300做扩展通信只能通过CP342-5,因为300中是没有通信所需固化SFB的,若是都是用DP话柄现该通信,其中必需有一台400,将程序写在400中做单边通信(挪用SFB14和SFB15)。
表2s7connection通信两边程序
SIMATIC300(master)
SIMATIC300(slave)
CALLFB12,DB12
REQ:
R:
ID;
W#16#1
R_ID:
DW#16#AAAA
CALLFB13,DB13
EN_R:
2.FDL连接
FDL是Profibus的第二层数据链路层(FieldbusDataLayer)的缩写,和Profibus-DP通信不同的是ProfibusFDL的每一个通信站点都有令牌功能,通信以令牌环的方式进行数据互换,每一个站点都能够和多个站点成立通信连接。
FDL效劳许诺发送和接收最大240字节的数据,既能够用于S7PLC间,也能够用于S7和S5PLC或与PC间的数据传输。
(1)在netpro中进行网络组态,在443-5与342-5之间成立FDL连接,如图14所示。
在硬件组态中,均设置联网,工作于No-dp方式(若是不支持No-dp方式,设置成Dp-master)。
在netpro中插入连接,连接类型为FDL,连接成立在profibus网络上。
测试连接
图13在netpro中建立FDL连接
程序如表3所示。
写程序的时候应该注意400挪用的FC5,FC6在CP_400库中,300挪用的FC5,FC6在CP_300库中,它们是不同的FC5和FC6。
表3FDL通信两边程序
SIMTIC400
(1)
SIMTIC300
(1)
CALLFC5
ACT=
ID=1
LADDR=W#16#1FFD
SEND=P#BYTE5
LEN=5
CALLFC6
RECV=P#BYTE5
FC5,FC6中ID是指连接的ID,LADDR是指通信卡的地址,这两个参数能够通过在FC5或FC6上按鼠标右键,在快捷菜单上选择connection的窗口中自动填取。
四、利用FC3对CP342-5实现诊断
除常规的硬件诊断外,对CP342-5的诊断需要挪用FC3来实现,它能够把有故障的从站站号读出来,与FC2结合利用,读出某个从站具体的诊断信息。
1.读出站点列表(DTYPE=0)
图14是挪用FC3(DTYPE=0;
DIAG=P#BYTE16)后DB1数据块中16个字节的结果。
在地址为9从站关闭后能够看到前两个字节为000000001000000,从左侧数过来正好是第9位,若是哪一名为1就说明该地址对应的从站发生了故障。
图14调用FC3后故障站点地址信息
2.读出诊断列表(DTYPE=1)
挪用FC2后DPSTATUS的返回值是00000100,第2位为1表示有新的诊断数据来,于是挪用FC3读出诊断列表(如图15所示)。
使能FC3
图15调用FC3读出诊断列表
诊断列表的长度为16个字节,在线监视db2(如图6所示),前两个字节为000000001000000,从左侧数过来正好是第9位,说明9号站有新的诊断数据。
图16调用FC3后诊断列表
3.读单个DP当前的诊断数据(DTYPE=2)
挪用FC3如图17所示,STATION=B#16#9表示诊断地址为9的从站,诊断数据放在DB3中,返回值DIAGLNG为6表示读出了6个字节的诊断数据。
NDR=1,ERROR=0,STATURS=8248表示“Jobcompletedwithouterror.”。
图17调用FC3实现单个站点诊断
在线监视DB3,结果如图18所示。
诊断数据
图18调用FC3单项诊断数据