LONGATE MODBUS到LonWorks的网关使用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LONGATE MODBUS 到LonWorks 的网关使用说明
特点
● RS232、RS485两种串口可选(订购时确定) ● LonWorks 收发器为FTT -10A
● 通过LonWorks 访问MODBUS 设备 ●
通过MODBUS 访问LonWorks 设备
一、产品描述
MODBUS 到LonWorks 的网关是LONGATE 的一种特殊应用,因此有必要先了解一
下普通LONGATE 的设计思路。
LONGATE 提供串行口到LonWorks 的网关,有RS232到LonWorks 、RS485到LonWorks 两种型号,其应用模式主要有三种,分别如图1、图2、图3所示。
图1 Modbus 到LonWorks 串口
图3 利用成对的 Longate 实现串口设备的透明连接
在图1中,传统的MODBUS 接口设备通过 Longate 接到LonWorks 网上,LonWorks 网上的计算机或其它LonWorks 节点就可以访问这些MODBUS 智能设备的数据。
Longate 实现的MODBUS 指令为“寄存器读”和“寄存器写”,通过提供8个输入网络变量、8个输出网络变量来完成对MODBUS 从设备的数据访问,每组网络变量均为32字节,对应16个MODBUS 的Register 。
16个网络变量分别有对应的MODBUS 从节点地址、内部Register 的起始地址及Register 个数三个可配置参数,这些参数可以相同,也可以不同,因此一个Longate 最多可以从8个MODBUS 从设备中读取数据,还可最多向8个MODBUS 从设备中写入数据。配置参数均为EEPROM 类型,一旦设定,失电后仍然有效。
图2中PLC 作为MODBUS 主站,通过Longate 可以访问LonWorks 网上的不同节点的数据。
具体的实现方法是, 先在Longate 中建立网络变量并与对应的节点实现网络变量的绑定,Longate 建立一张映射表,把网络变量映射成MODBUS 的Register ,这样MODBUS 主节点就可以像访问普通MODBUS 从节点一样访问LonWorks 网络上的节点。
可以看出,Longate 这种应用是存在限制的,即MODBUS 主节点最多可以通过Longate 访问64个不的网络变量。
图3的应用模式, 实际上是一种“借道”模式, Longate 接到串口的数据包后,转换成LonWorks 报文,发送到LonWorks 网上,另一端的Longate 收到此报文后,还原成串口数据包。限制是每个串口数据长度不得大于64个字节。
原来以串口(RS232、RS485)相连的两个设备, 通过一组 Longate , “借道”LonWorks 来完成通信,软件及硬件不用做任何改变。
二、接线图
二、MODBUS-LONGATE程序接口
MODBUS到LonWorks的网关是LONGA TE的一种特殊应用,它通过预装的程序完成以下功能:
MODBUS 从节点的内部寄存器值转换成对应的LonWorks网络变量;这部分功能是出厂时预装程序具有的;如果对程序的某些限制有修改的要求,可以与公司协商
用户可以用NODEBUILDER或VisualControl编程,完成其它串口设备到LON的转换,也可以委托本公司代为实现。
出厂时,MODBUS-LONGATE中预装了lonWorks程序,定义了以下网络变量,为了使MODBUS-LONGATE能正常工作,必须对以下配置参数进行设定。
预装程序的网络变量定义如下:
●config network input SNVT_count_inc nciRefPrd=2;
配置参数,掉电后保留,MODBUS-LONGATE模块将以这个参为周期查询MODBUS从节点,并将查询结果放入相应的网络变量,单位秒,缺省值2秒;
●config network input SNVT_count_inc nciModbusTimeOut=3;
配置参数,掉电后保留,MODBUS从节点若在这个参数规定的时间内没有应答MODBUS-LONGA TE模块的查询,则认为发生超时错误,可能MODBUS从节
点故障或通讯故障;
●config network input unsigned int nciUARTBaud=3;
配置参数,掉电后保留,MODBUS-LONGATE模块与MODBUS从节点间通
讯波特率,缺省9600bps
1.2400bps
2.4800bps
3.9600bps
4.19200bps
5.38400bps
其它无效
●config network input unsigned int nciUARTMode=1;
配置参数,掉电后保留,MODBUS-LONGATE模块与MODBUS从节点间串口工作模式,缺省为模式1:
1.1位起始位,8位数据位,1位停止位
2.1位起始位,8位数据位,2位停止位,无校验位
3.1位起始位,8位数据位,1位偶校验位,1位停止位
4.1位起始位,8位数据位,1位奇校验位,1位停止位
其它无效
●config network input unsigned int nciGroupNum=4;
配置参数,掉电后保留,MODBUS-LONGATE模块下挂的MODBUS从节点的个数,缺省为4;最多不超过4;
●config network input unsigned int nciModbusSlave[4];
配置参数,掉电后保留,这是一个数组,每个变量对应MODBUS从节点的地址,不能为0;
●config network input unsigned int nciModbusRegNums[4];
配置参数,掉电后保留,这是一个数组,数组的每个变量对应MODBUS从节点中读上来的寄存器个数;缺省为14,最大不能起过14;由于MODBUS规定每
个寄存器长2个字节,也就是说每次可以从人MODBUS从节点中读上来的数为28
个字节(如果用户要求,最大可以到80字节);
●config network input unsigned long nciModbusStart[4];配置参数,配置参数,
掉电后保留,这是一个数组,数组的每个变量对应MODBUS从节点中读上来
的寄存器的起始地址;
●network output dms_Range nvoModBusData[4];
MODBUS-LONGATE模块周期性地从下挂的MODBUS从节点取数,取上后
放到这个数组中,数组中的每个变量对应一个从节点的数据,要注意:数组中
的每变量都是一个结构型的变量,定义如下:
typedef struct{
signed long para[14];
}dms_Range;
可以按用户要求扩大到40个长整型
●network output unsigned int nvoSlaveError[4];
从节点若在规定的时间内没有应答MODBUS-LONGATE模块的查询,上述网量变
量的对应单元为非0,每出错一次,内容增加1;
●network output unsigned int nvoSlaveAccess[4];
对应的MODBUS从节点正确应答的次数,最大值为255,达到此值后,将重新从0开始计数,正常情况下应在不断地变化,若长时间不变,则说明该从节点有
故障,因此这是一个监测MODBUS从节点“心跳”的网络变量,
上述网络变量中,有5个是公用的,其它6个都是数组型的,每个MODBUS从节点对应数组中一个变量,因此每个MODBUS从节点用到6个网络变量,椐LONWORKS编程的要求,每个LON节点的网络变量个数不得超过64个,因此LONGATE理论上最多可以带(64-5)/6约9个MODBUS从节点,但推荐为1-4个,否则会很慢。