通信参数的高级设置

  • RWG控制器作为modbus RTU ( RS485)从站通信
    • RWG控制器需要设置串口通信的波特率、数据位、校验位、停止位及Modbus从站地址,并保证与主站设备串口通信参数保持一致。
    • 主站设备访问RWG控制器时,发送帧间隔时间需要设置到不小于100ms。
    • 主站设备等待RWG控制器应答帧的超时间,取决于串口通信波特率以及发送帧内容(写命令修改RWG控制器的Modbus寄存器个数,读命令则没有影响)。一般情况下,在波特率为9600bps以及超时时间为1000ms时可以保证正常通信。如果一次修改80个变量的值时,超时时间则至少为1500ms。
  • RWG控制器作为modbus RTU ( RS485)主站通信
    • RWG控制器需要设置串口通信的波特率、数据位、校验位、停止位及modbus从站地址,并确保RS485网络中通信参数一致 。
    • RWG控制器采用循环读写与“COV”触发写指令同时执行的通信方式。循环读写将按照“主站模式编程”中配置的相应内容逐条完成读写指令。“COV”触发写指令,当控制器的应用程序或HMI操作修改通信变量的数值后,控制器将马上发送一条“主站模式编程”配置中对应的写指令。
    • 采集周期:
    • T1理论 = D1/K
    • T1设置 = T1理论 + T1冗余
    • T2理论 = D2/K
    • T2设置 = [(T2理论 +T2冗余)/T1冗余]*T1设置(注:T1,T2混合使用)
    • T2设置=T2冗余+T2实际(注:T2单独使用)

参数

含义

备注

数据组

当多个数据点的设备地址、数据类型和采集周期一致,且寄存器地址连续时,多个数据点即可被自动打包为一个数据组。

对于Float类型,寄存器地址为n, n+2, n+4…(n为起始地址)即为地址连续。如1,3,5,7,9…

对于Bool、Short16、Word16类型,寄存器地址为n,n+1,n+2…(n为起始地址)即为地址连续。如1,2,3,4,5…

T1理论

完成“采集周期T1”内n条数据组通信所需的理论扫描周期,单位为“条” ,该值为T1设置的计算参数。

-

T1冗余

T1通信的时间余量,单位为“ms”,该值为T1设置的计算参数。

T1冗余影响T1与T2各自的数据组的通信速率。

  • 当T1、T2混合使用时:
  • 如T1冗余为0,则 “采集周期T2”内的数据组通信失效;
  • 如T1冗余过大,则“采集周期T1”内的数据组通信的时间间隔增加。
  • 当T1、T2混合使用时,为保证T2数据能够通信成功,推荐T1冗余大于等于1000ms;
  • 如单独使用T1,则推荐T1冗余为260ms。

T1设置

“通信编程”页面中填写在“采集周期T1(ms)”内的设定值,单位为“ms”。

T1设置 = T1理论 + T1冗余

T2理论

完成“采集周期T2”内n条数据组通信所需的理论扫描周期,单位为“条”,该值为T2设置的计算参数。

-

T2冗余

T2通信的时间余量,单位为“s”,该值为

T2冗余的计算参数。

T2冗余 推荐设定值为1s。

T2设置

“通信编程”页面中填写在“采集周期T2(s)”内的设定值,单位为“ms”。

如T2单独使用,则T2设置 = T2冗余 +T2实际

如T1,T2混合使用,则T2设置 = [(T2理论 +T2冗余)/T1冗余]*T1设置

D1

n条数据组,即需要放置在采集周期T1内的数据组的数量。

-

D2

n条数据组,即需要放置在采集周期T2内的数据组的数量。

-

K

RWG每秒可处理的数据组的数量。

K为常数,K在9600波特率下为6条。

  • K在不同的波特率下为不同数值。
  • 在波特率已固定的前提下,如有从设备离线或其他导致超时事件发生的情况,会导致该值发生变化。但当通信恢复稳定时,该值会恢复为原有的数值。

时序图:

T1单独使用:

 

T2单独使用:

 

T1、T2混合使用1:

 

T1、T2混合使用2:

 

    • 打包和不打包的情况下,速率不同。设置采集周期并保证在一个采集周期内能够完成所有“主站模式编程”内的读写配置。一般情况下,在波特率为9600bps且没有从设备离线或其他导致超时事件发生的情况下,不打包的情况下每秒可发送10条数据包。
      采集周期的具体设置可以根据所配置的采集内容条数来确定,如:无打包情况下,9600波特率下80条主站只读或读写指令配置最少需要8(80÷10)秒的时间才能完成一轮循环读写任务,所以采集周期最少应设为8秒。如果“主站模式编程”中的80条配置全部为读写,那么循环读写过程中只会执行读指令,此过程与只读配置相同,8秒完成一轮读指令任务。同时,每有一个变量产生“COV”,将触发一次写指令,写指令同样会占用RS485总线,所以在8秒的基础上增加多少冗余的时间用于处理写指令工作,取决于应用程序中对通信变量进行写操作的频率。如果采集周期只设置了8秒,将可能发生某轮循环读写过程中排在配置表后面的配置项没有得到执行的情况。
    • 超时时间:RWG控制器Modbus主站通信超时时间的设置,应取决于RS485总线网络内应答帧回复最慢的设备所需的最大超时时间来设置。如果一条读/写指令发生超时事件,RWG控制器将重发该条指令,重发次数为3次。
    • 断线检测:RWG控制器作为Modbus主站时,允许连接最多32个不同物理地址的Modbus从设备,为了提高总线数据通信效率,如果某个从设备连续8次通信超时,则判定该从站设备离线,循环读写过程将跳过该从站设备所对应的所有配置。
    • 断线重连:对于已经被RWG控制判定为离线的从站设备,RWG控制每隔30秒将发送一次该从站设备配置信息中的第一条读/写指令,如果得到应答,则判定该设备已经重新上线,循环读写将执行该从站设备的所有配置信息。如果依旧超时,则30后重复此条指令,指导该从站设备重新连接上线。
    • 通信变量的取值范围:
      数据类型中定义为float32时,取值范围-999999.9~999999.9
      数据类型中定义为float32时,取值范围-999999.9~999999.9
      数据类型中定义为word16时,取值范围0~65535
  • RWG控制器作为modbus TCP server时
    • RWG控制器需要设置本地的IP地址,子网掩码(255.255.255.0)以及端口号(502)为默认值,可修改。
    • RWG控制器最多可连接4个client同时访问,Client端超时时间一般设为1000ms。此值能够保证绝大多数的数据通信,但如果一次修改80个变量的值时,超时时间则至少为1500ms。
  • RWG控制器所支持的Modbus功能码
    • 输入继电器(Discrete)(读02)
    • 输出继电器(Coil)(读01,写单个05,写多个15)
    • 输入寄存器(Input)(读04)
    • 输出寄存器(Holding)(读03,写单个06,写多个16)