西门子300与mcgs通信.docx
- 文档编号:28737205
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:22
- 大小:27.46KB
西门子300与mcgs通信.docx
《西门子300与mcgs通信.docx》由会员分享,可在线阅读,更多相关《西门子300与mcgs通信.docx(22页珍藏版)》请在冰豆网上搜索。
西门子300与mcgs通信
西门子S7_300/400MPI
1、设备简介
本驱动构件用于MCGS软件通过MPI适配器器读写西门子S7-300/400系列PLC设备的各种寄存器的数据;
驱动类型
串口子设备,须挂接在“通用串口父设备”下才能工作
通讯协议
采用西门子MPI协议
通讯方式
一主一从的主从通讯方式。
驱动构件为主,PLC设备为从。
2、硬件连接
MCGS软件与设备通讯之前,必须保证通讯连接及适配器的设置正确。
通讯连接方式:
本构件与S7-300PLC通讯时,要使用专用的标准西门子MPI适配器(PC-Adapter)与上位机RS232口通讯,适配器设置及通讯电缆连接线请参见附录1。
3、设备通讯参数
“通用串口父设备”通讯参数设置如下:
设置项
参数项
通讯波特率
38400、19200(默认值)
数据位位数
8
停止位位数
1
奇偶校验位
奇校验
其中父设备通讯参数设置应与设备的通讯参数相同,否则无法正常通讯。
设备通讯参数的具体设置方法参见附录2
4、设备构件参数设置
“西门子S7-300/400MPI”子设备参数设置如下:
●内部属性:
单击“查看设备内部属性”,点击按钮进入内部属性,具体设置请参看内部属性。
●PLC站地址:
PLC站地址,可设定范围2-126,默认值为2。
●PLC槽号:
PLC槽号(Rack),可设定范围0-31,默认值为2,在和400系列PLC通讯时此属性一般要设定为3。
●PLC机架号:
PLC机架号(Slot),可设定范围0-31,默认值为0。
此属性一般不用设置。
●通讯响应时间:
通讯初始化MPI适配器的等待延时,默认设置为800ms,当无法正常通讯时可适当增大。
●数据帧格式:
通讯所用数据帧格式,默认为0-格式A,与西门子ProDave格式兼容(支持7E格式);1-格式B与TopServer格式兼容;2-格式C与MCGS旧嵌入版驱动兼容;3-格式D与西门子旧版ProDave5.1格式兼容(不支持7E格式)。
建议使用默认0-格式A,其兼容性最强。
●本站地址:
上位机的地址,默认为0,建议设置为0或1。
●网络传输率:
MPI网络传输率,可设置为19.2Kbps、187.5Kbps、1.5Mbps。
默认为187.5Kbps。
●最高站地址:
网络中最高的地址,可设置为15、31、63、126。
默认为31。
要确保MPI网络中所有站的最高站地址都相同。
注意:
1.“网络传输率”和”最高站地址”两项的设置一定要PLC的MPI通讯设置及SetPG/PC适配器属性中设置相同,并要先确保相应设置Step7可以正常通讯。
一般建议用户分别设置为默认值187.5K和31。
另外,“网络传输率”是指PLC中设置的MPI网络的传输速率,与”通用串口父设备”的串口通讯波特率有所区别,其具体查看及设置方法请参见附录2。
2.“数据帧格式”一般情况下使用默认的0-格式A即可,其兼容性最强。
当使用非原厂的兼容MPI电缆在A格式无法通讯时,可尝试使用其他格式,此时应注意:
当选择1-格式B和2-格式C时,只能在MPI网络传输率为187.5Kbps的情况下才能正常通讯。
这是由兼容MPI电缆决定的,而原厂电缆则不存在此问题。
3.此驱动与原有老驱动兼容,并默认识别为与旧驱动兼容的C格式。
但如果用户使用老驱动,因更换为非原厂电缆等原因,导致无法使用格式C通讯时,请重新添加驱动,并以其他格式尝试,此时通道及变量均需重新连接。
4.S7-300PLC的出厂设置是:
MPI地址为2,槽号为2;对于S7-400PLC,其电源可能占用槽号位为1~3,所以CPU的槽号位置不再是固定值2。
5、采集通道
a、通讯状态:
通讯状态值
代表意义
0
表示当前通讯正常
1
初始化失败或未收到SC确认帧
2
表示采集无数据返回错误
3
表示采集数据校验错误
4
表示设备命令读写操作失败错误
5
表示设备命令格式或参数错误
6
表示设备命令数据变量取值或赋值错误
7
表示PLC错误,数据没有准备好
8
表示收到数据帧(但其中部分数据存在错误)
9
表示收到数据帧(但数据有错误,可以查看日志记录)
10
表示收到错误帧(可以查看日志记录)
b、数据通道信息:
本构件数据通道可通过内部属性添加,具体设置请参看内部属性。
6、内部属性
用户可通过内部属性,添加PLC的通道,本驱动构件可增加通道类型如下:
寄存器
数据类型
操作方式
I输入寄存器
BT、BUB、BB、BD
WUB、WB、WD
DUB、DB、DD、DF
读写
Q输出寄存器
BT、BUB、BB、BD
WUB、WB、WD
DUB、DB、DD、DF
读写
M位寄存器
BT、BUB、BB、BD
WUB、WB、WD
DUB、DB、DD、DF
读写
DB数据块寄存器
BT、BUB、BB、BD
WUB、WB、WD
DUB、DB、DD、DF
读写
T时间寄存器
WD
只读
C计数寄存器
WUB、WB、WD
只读
数据类型参见附录3
地址范围参见附录4
注意:
添加DB数据块寄存器通道时,“寄存器地址”处地址添加格式为:
DB块号.数据地址。
例如:
添加DB01.WUB002通道时,则“数据类型”选择“16位无符号二进制”,并在“寄存器地址”处填写“1.2”。
如填写不符合要求,则认为所填写值为DB块号,而数据地址默认为从0开始。
例如只填写“2”,则识别为“2.0”,即DB2.0。
7、设备命令
本设备构件提供设备命令,用于对西门子S7-300PLC进行相应的读写操作,设备命令的格式如下:
设备命令
命令格式
命令举例
读取命令
Read
Read(寄存器名称.块号.寄存器地址.数据类型=返回值)
例1.1:
!
SetDevice(设备0,6,"Read(M.0.10.BT00=Data01;M.0.11.BT00=Data02)")
读取M10和M11寄存器的值,放入MCGS变量Data01,Data02中。
例1.2:
!
SetDevice(设备0,6,"Read(DB.1.20.WUB=Data01;DB.1.40.DF=Data02)")
读取DB1寄存器中地址20的16无符号值,DB1寄存器中地址40的浮点数值,放入MCGS变量Data01,Data02中。
写入命令
Write
Write(寄存器名称.块号.寄存器地址.数据类型=写入值)
例1.3:
!
SetDevice(设备0,6,"Write(M.0.10.BT00=Data01;M.0.11.BT00=Data02)")
将Data01,Data02值分别写入寄存器M10,M11中。
32位读命令
Read32
Read32(寄存器名称.块号.寄存器地址.数据类型=字符返回值)
例2.1:
!
SetDevice(设备0,6,"Read32(DB.1.30.DUB=strData)")
读取DB1寄存器中地址30的32位无符号值(DB1.DUB),放入变量strData中。
32位写命令
Write32
Write32(寄存器名称.块号.寄存器地址.数据类型=字符写入值)
例2.2:
!
SetDevice(设备0,6,"Write32(DB.1.30.DUB=strData)")
将字符变量strData的值,以32位无符号格式写入寄存器DB1.DUB30中。
批量读取A:
ReadP
ReadP(寄存器名称.块号.起始地址.数据类型,数据个数n,数据1,…..数据n[,返回状态])
例3.1:
!
SetDevice(设备0,6,"ReadP(DB.1.10.WUB,2,Data01,Data02,nReturn)")
表示读取DB1寄存器从地址10开始的两个16位无符号数值,放入
MCGS变量Data01,Data02中,执行结果存入变量nReturn中。
批量读取B:
ReadPV
ReadPV(寄存器名称.块号.起始地址.数据类型,数据个数n,数据1[,返回状态])
例3.2:
!
SetDevice(设备0,6,"ReadPV(DB.1.10.WUB,5,Data01,nReturn)")
表示读取DB1寄存器从地址10开始的5个16位无符号数值,放入MCGS变量Data01为起始,连续5个变量(即:
Data01,Data02,Data03,Data04,Data05)中,
结果存入变量nReturn中。
批量读取C:
ReadBlock
ReadBlock(寄存器名称.块号.起始地址.[数据类型1][数据类型…],读取数量n,字符数据[,返回状态])
说明:
配方形式批量操作,读取数量是指读取N个数据类型中指定的数据段到字符变量中,数据类型可以有多个,之间用中括号分隔。
实际连续读取个数=读取数量n*(数据类型1+数据类型n)
返回数据“字符数据”格式为:
123,456,xxx的csv方式,每次读取时以回车换行结尾。
例3.3:
!
SetDevice(设备0,6,"ReadBlock(DB.1.10.[WUB][DF],3,strData,nReturn)")
表示读取DB1寄存器从地址10开始,按WBU,DF格式连续读取3组数据(即:
数据格式为WUB,DF,WUB,DF,WUB,DF),并以相应格式解析并以逗号间隔的CSV格式存入字符变量StrData中。
批量写入A:
WriteP
WriteP(寄存器名称.块号.起始地址.数据类型,数据个数n,数据1,…..数据n[,返回状态])
例4.1:
!
SetDevice(设备0,6,"WriteP(DB.1.10.WUB,2,Data01,Data02,nReturn)")
表示将MCGS变量Data01,Data02的值,以16位无符号形式写入DB1寄存器从地址10起始的两个寄存器中,执行结果存入变量nReturn中。
批量写入B:
WritePV
WriteP(寄存器名称.块号.起始地址.数据类型,数据个数n,数据1[,返回状态])
例4.2:
!
SetDevice(设备0,6,"WritePV(DB.1.10.WUB,5,Data01,nReturn)")
表示将以MCGS变量Data01为起始,连续5个变量的值(即:
Data01,Data02,Data03,Data04,Data05),以16位无符号形式写入DB1寄存器从地址10起始的两个寄存器中,执行结果存入变量nReturn中。
批量写入C:
WriteBlock
WriteBlock(寄存器名称.块号.起始地址.[数据类型1][数据类型…],读取数量n,字符数据[,返回状态])
说明:
写入的数据在指定的字符数据对象中,格式为:
xxx,xxx,xxx的csv方式,每次读取时换行以回车换行结尾。
其他具体格式参见ReadBlock。
例4.3:
!
SetDevice(设备0,6,"WriteBlock(DB.1.10.[WUB][DF],3,strData,nReturn)")
表示将strData字符变量中的CSV格式的数据,按指定格式,写入DB1寄存器从地址10开始的连续地址中。
通讯日志
SetHiddenPro(1,属性值)
开启通讯日志:
!
SetDevice(设备0,6,"SetHiddenPro(1,1)")
开启错误日志:
!
SetDevice(设备0,6,"SetHiddenPro(1,2)")
关闭通讯日志:
!
SetDevice(设备0,6,"SetHiddenPro(1,0)")
属性获取
GetHiddenPro(1,属性值)
读取日志状态:
!
SetDevice(设备0,6,"GetHiddenPro(1,Data01)")
Data01为1时,表示日志开启;为0时,表示日志关闭。
读取PLC延时:
!
SetDevice(设备0,6,"GetHiddenPro(2,Data01)")
读取PLC实际的响应延迟时间,存入变量Data01中。
读取最小采集耗时:
!
SetDevice(设备0,6,"GetHiddenPro(3,Data01)")
读取采集最小数据(1字长数据)所用耗时,存入变量Data01中。
参数说明:
寄存器名称:
字符型变量,表示当前操作的寄存器,值等于I,Q,M,DB,T,C。
块号:
数值型变量,表示当前操作的DB寄存器的DB块号。
当寄存器为I,Q,M,T,C,此值无意义,为0即可。
寄存器地址:
数值型变量,表示当前操作的寄存器地址,查阅相关手册确定。
数据类型:
字符型变量,表示当前操作的寄存器数据类型,参见附录2。
数据:
数值型变量、开关量,它是用来存储设备命令数据的MCGS变量。
返回状态:
返回批量读写设备命令的执行状态(当设备命令格式错误时无效),具体返回值意义请参见通讯状态说明,返回状态为可选参数(以[]标记),用户也可通过通讯状态通道判断返回结果。
批量读写说明:
1.批量读写操作(包括:
ReadP、ReadPV、WriteP、WritePV),为对同类寄存器连续地址的一次性读写操作。
使用时要注意变量对应寄存器地址的连续性。
2.批量读写操作(包括:
ReadP、ReadPV、WriteP、WritePV),数据个数最大为512个。
建议一次批量操作数据量不要过大,否则会影响正常采集效果。
3.批量读写ReadPV和WritePV为对连续变量的操作,使用时要注意保证变量命名的索引累加的连续性。
具体可参看相应“命令举例”部分。
4.批量读写ReadBlock和WriteBlock为对连续地址的读写操作,其字符变量格式为特定的CSV格式,在写入及读取解析时一定要注意符合格式要求。
通讯日志功能说明:
设备命令中提供的通讯日志功能是为了方便用户现场调试,默认为不开启状态。
正常时无需开启,否则影响速度。
当现场有疑难无法正常通讯时,可开启日志功能,记录日志信息,将通讯过程记录以供技术人员分析。
对于通讯跳变等不稳定状态,可以开启错误日志记录(即:
当通讯不正常时,记录通讯错误的日志,而正常通讯时不记录日志)。
通讯日志默认保存为C:
\HostLink.log(TPC下为\HardDisk\HostLink.log)。
当文件大于6M时自动清空。
日志格式举例说明如下:
地址
行号
操作时间
操作内容
重试次数
Address:
2
Line001
(2007-10-2414:
21:
51)
InitializeMPI1
0
子行号
发/收
操作时间
字节长度
发送或接收内容
01
Send
[32369765]
[1Byte]:
02
02
Recv
[32369765]
[1Byte]:
10
03
Send
[32369765]
[12Byte]:
0482800C0314B0012E100391
行号
操作时间
总耗时
Line001
[32369796]
AllCollectTime[151ms]
属性获取功能说明:
使用设备命令中提供的属性获取功能,可以获得通讯日志状态、PLC延时、最小采集耗时等数据。
其中:
通讯日志状态:
读回值为1时,表示通讯日志开启;读回值为2时,表示开启错误日志;为0时,表示通讯日志关闭。
PLC延时:
为PLC实际的响应延迟时间,即:
驱动读写指令帧发出后到PLC响应并开始返回数据帧所用的时间。
最小采集耗时:
为采集最少数据(1字长数据)所耗费的时间,最小采集耗时=发指令帧耗时+PLC延时+接收数据帧耗时。
用户在调试时,可根据PLC延时、最小采集耗时判断PLC的实际响应时间,并结合驱动通讯日志判断采集速度是否正常。
如数据值过大,说明PLC可能因程序过大而导致响应时间过长,影响采集速度。
解决方法为优化PLC程序,提高PLC响应时间。
注释:
由于MPI驱动为多帧通讯机制,属性中获取的PLC延时和最小采集耗时并不完全代表实际采集的时间。
8、常见故障分析
故障现象
分析
处理建议
通讯状态为
1或2
采集初始化错误
或采集无数据返回
(通讯硬件连接、参数设置问题)
1、检查串口父设备参数设置是否正确
2、检查串口是否被其他程序占用
3、检查通讯电缆是否正确连接,或使用原厂标准电缆
4、检测设备,并使用厂家测试程序确保通讯正常。
并确认设备设置项与帮助中要求相同。
5、检查“设备地址”与PLC设置是否一致
6、适当延长“通讯等待时间”
7、读取数据地址超范围
通讯状态为3
采集数据校验错误
(包括应答数据不完整或校验错误两种情况)
1、检查父设备串口校验位设置是否正确
2、适当延长“通讯等待时间”
3、设备断电,重新上电,使初始化设备
4、通讯电缆太长,做短距离测试
5、现场干扰太大,避免周围环境干扰
6、通讯信号变弱,使用有源RS232/485模块
通讯状态为7
PLC数据未准备好
适当增加“通讯等待时间”
通讯状态为8
部分通道配置问题
(多为寄存器地址超出范围)
可能存在配置数据地址越界等错误,此时有问题通道值显示可能的错误值及意义如下:
-1-硬件错误
-3-非法寄存器访问
-5-错误的寄存器地址
-6-不支持的数据类型
-10-寄存器不存在或长度错误
此时请检查所添加寄存器及地址是否存在问题,以及对应型号PLC是否支持。
通讯状态9,10
返回错误帧
和开发人员联系,确认错误原因
通讯状态在0与非0之间跳变
通讯不稳定或读取地址超范围
1、同通讯状态为3的处理
2、读取数据地址超范围
(典型情况为,添加某通道后,导致通讯状态变非0)
通讯状态为0,数据不正确
组态工程错误
1、新建工程测试驱动
2、检测通道是否连接变量
3、检测工程是否对数据进行处理
通讯速度太慢
通讯数据量过大或采集周期设置过长
1、将“采集优化”属性设置为“1-优化”
2、减小父设备及子设备的最小采集周期
(最小可设置为20ms)
3、使用设备命令,减少实时采集的数据
4、通过设备命令获取PLC延时,判断是否因PLC响应时间过长而影响采集速度。
通讯次数过多
5、将数据放到连续的地址块中,提高块读效率
6、将不同寄存器的数据放到同一寄存器连续的地址块中,减少采集块数,提高采集效率
9、特殊应用的开发
本设备构件目前只实现部分通讯功能,如需要用作其它用途或本构件不能满足要求时,可自行进行开发,《MCGS用户指南》中有关于开发设备构件的详细说明,也可以提出具体的技术要求,由我们亲自为您定制。
附表:
附录1
MPI适配器(PCAdapter)的串口通讯的波特率可通过适配器上的DIP开关进行设置,且必须与上位机SetPG/PC中PCAdapter的本地连接设置一致。
西门子原厂MPI适配器有两种型号,分别为:
6ES7972-0CA23-0XA0和6ES7972-0CA20-0XA0。
其中6ES7972-0CA20-0XA0只支持19200的波特率。
注意:
部分国内兼容的MPI适配器只能支持部分网络传输率及串口通讯的波特率,请使用时注意。
建议先使用西门子编程软件Step7测试确认一下。
在与TPC通讯时,有时需要附加通讯电缆与适配器器相接,其接线图如下:
注意:
TPCRS232端口与MPI适配器之间电缆的最长距离不能超过15米。
附录2
通讯参数设置方法:
1)连接PLC,运行Step7编程软件。
2)选择主菜单的Options,选择“SetPG/PCInterface”,弹出“SetPG/PCInterface”窗口,如下图所示:
3)点击上图的Properties按钮,弹出通讯接口参数配置框如下图所示,可以设置网络参数,并在左下方有对应的参数显示,组态中驱动设置的网络传输率及最高站地址要与其一一对应。
4)点击上图中“LocalConnection”页,或切换到本机通讯设置,如下图所示。
为本机串口通讯参数的设置,需要与MPI适配器的DIP拨码开关设置对应。
组态时通用串口父设置的串口端口号以及波特率参数也要与之对应。
5)在用户Step7工程中打开硬件环境,如下图所示,其中高亮色为PLC的CPU型号,左侧为槽号,组态子设备参数要与其对应。
6)双击高亮的CPU,弹出CPU属性页,如下图所示,其中Address项为其PLC站地址。
7)点击上图的Properties按钮,弹出MPIInterface参数配置页,如下图所示,可对PLC的MPI通讯的站地址、网络传输率、最高站地址进行设置和修改。
注意:
此处的网络传输率(Transmissionrate)设置要与SetPG/PC中设置相同,否则会导致通讯失败。
8)如果Step7编程软件与PLC通讯失败时,可用SetPG/PC中的PCAdapter(Auto)页,点击“StartNetworkDetection”进行检测,成功检测后,结果如下图所示,此时设置为MPI网络传输率19.2Kbps,最高站地址为126。
可根据结果通过Step7进行设置及修改。
附录3
数据类型表:
BTdd
位(dd范围:
00-07)
BUB
8位无符号二进制
BB
8位有符号二进制
BD
8位2位BCD
WUB
16位无符号二进制
WB
16位有符号二进制
WD
16位4位BCD
DUB
32位无符号二进制
DB
32位有符号二进制
DD
32位8位BCD
DF
32位浮点数
●位序号:
BT00,BT01---BT07.
●数值类型:
BB,BUB,BD,WB,WUB,WD,DB,DUB,DD,DF
1)第一个字母表示数据的长度,B表示是字节数据,W表示是字数据,D表示是双字数据;
2)最后一个或两个字母表示数据类型,B表示二进制数,D表示BCD码,F表示浮点数;
3)字符中二进制数中带U表示无符号数,不带U的表示有符号数。
附录4
31XPLC寄存器参考地址范围表:
CPU型号
I输入寄存器
Q输出寄存器
M位寄存器
DB数据块寄存器
T时间寄存器
C计数寄存器
31X
0~65535
0~65535
0~255
0~65535
0~255
0~255
注:
具体不同型号的PLC,其地址范围请参考对应用户手册。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西门子 300 mcgs 通信