技术论坛

 说说西门子200smart modbus自由口通讯的那些事

返回主题列表
作者 主题
WWCWWC
至圣

经验值:71712
发帖数:8024
精华帖:145
楼主    2016-11-26 10:10:08
主题:说说西门子200smart modbus自由口通讯的那些事

                             说说西门子200smart modbus自由口通讯的那些事

   一直来,经常在论坛看到一些网友提问,关于200smart modbus自由口通讯的问题。我结合那时自己初学的经历,肤浅地写一些对于modbus 自由口通讯的认识,望能够帮助到需要的同行。

西门子200smart PLC本机集成有一个基于RS485口,该口可以通过特殊控制字节SMB30设置为PPI通讯(默认值)或者自由口,当然该字节的设置还包含通讯频率、通讯数据位、校验等参数的设置内容。如果系统需要增加2个通讯口,西门子200 smart还提供扩展的通讯信号板,订货号:6ES7 288-5CM01-0AA0。所对应的控制字节是SMB130,与之前的200 prot1口有些相似。

对SMB30(SMB130)控制字节的描述:

该控制字节的具体8个位分别:



b0 b1:通讯协议

 0 0 :PPI/从站模式

 0 1 :自由口通讯模式

 1 0 :保留

 1 1 :保留

b2 b3 b4:通讯频率

 0 0 0 :38400

 0 0 1 :19200

 0 1 0 :9600

 0 1 1 :4800

 1 0 0 :2400

 1 0 1 :1200

 1 1 0 :115200

 1 1 1 :57600

b5 :数据位

 0 :8位 / 字符

 1 :7位 / 字符

b6 b7:校验

 0 0 :无校验

 0 1 :偶校验

 1 0 :无校验

 1 1 :奇校验

   根据上诉控制字节每一个位的含义,设置通讯口是编写通讯程序中容易理解的一件事情。

假设,需要设置一个集成在cpu本机上的通讯口,通讯频率9600 bps;8位数据位;无校验,根据通讯要求选择:



得SMB30的数据值:0 1 0 0 1 0 0 1,转换为16# 数为 49。

这样,在初始化通讯参数时,只需要由SM0.1把16 # 49用MOV_B指令写入SMB30,集成的通讯口设置就完成了,图示:



所以,有时候看到论坛上有网友提问,尽管无论如何设置(通讯电缆是好的)通讯参数,与200或者200smart PLC就是无法连接,就有可能该口已经被设置了。如果是原200cpu只需要把运行开关拨至STOP模式,系统自动退回到PPI通讯模式。但200smart 没有了此开关的硬件配置,改为软件设置cpu运行模式,图示分别是:cpu运行、cpu停止、程序编译按钮



   检查该口是否被设置,只需要检查程序中是否调用了SMB30或者SMB130就明白了。

另外,需要注意200smart关于cpu运行的问题是,在“系统块”中增加了一个“启动”的选项,分别为:

STOP模式(默认值):CPU 在上电或重启后始终应该进入 STOP 模式

RUN模式:CPU 在上电或重启后始终应该进入 RUN 模式

LAST模式:CPU 应进入上一次上电或重启前存在的工作模式

   在实际应用中,需要先设置好这个“启动”选项,保存并下载项目到cpu中。

   说到这个通讯频率的问题,在通讯实例中往往会关系到一个数据就是空闲线时间设置的参数SMW90,所谓空闲线设置的依据是根据2条信息报文间隔时间,一般设置为大于3个信息报文间的时间作为空闲线时间,也是基于起始符、停止符后,另一个标志着通讯字符间隔。

假设,通讯频率为9600 bps,即每秒通讯速率是9600个位信息/秒,等同于9.6个位信息/mS。设置大于3个字符间隔的含义是:一个字符一般包含11个位信息(起始位、停止位、(7)8个数据位、校验位)。发送或者接收一个字符所需要的时间大概是1.145mS,大于3个字符间隔时间:1.145 * 3 = 3.437mS,取整后为4.0mS。所以我们常常看到SMW90被设置位4.0(mS)的依据也在此,这个空闲线间隔时间参数与通讯频率有关,具体启用这个空闲线定时器时间由SM87.3 = 1和SM87.4 = 1中设置。

上面说到了起始符和停止符,又是这么一会事情?

一条信息报文的开始或者结束往往需要用一个标志性字符来界定,西门子200smart PLC一般常常在SMB88(起始符);SMB89(结束符)将任意一个字符写入这些标志字节中来判断信息报文的开始和结束。考虑到任意字符作为起始或者结束符时,可能会与实际的信息字符会重合,不利于区分,一般常常用标志符“:”(16#3A)和回车“LF”(16#0A),当然,也允许用户自定义字符作为信息报文的开始和结束,只要在通讯数据中不曾出现的字符。这些标志性字符由SMB87控制字节内容来确定,其中启用起始符由SM87.6 = 1;结束符由SM87.5 = 1赋值。同理,如果采用信号板(SB),则在SMB187中设置相关参数。

西门子200smart PLC modbus自由口通讯作为信息的开始和结束,一般分为3种方式,即起始符、结束符;空闲线定时器时间;2者均采用,用户允许选择一种或多种方式来判断通讯信息报文的结构,图示是SMB87控制字节的说明:



另一个比较重要的参数是SMB94(SMB194)发送或者接收字符总数,最多允许发送或者接收255个字符,如果没有设置这个参数通讯将无法正常实现。有几次网友提问的附件中也看到了这个问题,更有意思的也有网友把这个字符总数设置成SMB94,那是2个概念的问题了。


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。