EIO用户使用手册Word格式.docx
- 文档编号:7632557
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:13
- 大小:50.47KB
EIO用户使用手册Word格式.docx
《EIO用户使用手册Word格式.docx》由会员分享,可在线阅读,更多相关《EIO用户使用手册Word格式.docx(13页珍藏版)》请在冰点文库上搜索。
根据通讯测点类型创建虚拟卡件。
虚拟卡件包括MDI、MDO、MAI、MAO。
图标如下:
、
每个虚拟卡件有32通道,可建32个测点。
即
●一个MDI可建32个DI测点;
●一个MDO可建32个DO测点;
●一个MAI可建32个AI测点;
●一个MAO可建32个AO测点。
虚拟卡件的配置与传统COM卡配置类似。
4.2在卡件“自定义属性”中有下面5个配置需要注意
1)设备ID:
指与DCS通讯的第三系统的编号,DCS内部定义的,与通讯方没有关系,这个编号需要与配置文件eio.conf中的“DeviceId”一致。
如虚拟DPU同时和ECS、PLC通讯,其编号分别为1、2,则分别对应于ECS和PLC虚拟卡件的属性配置中的“设备ID”应分别填1、2。
2)从站ID:
通讯双方共同协定。
3)起始寄存器号:
该卡件第一个通道的测点对应到第3方的通讯地址(寄存器或者线圈)。
4)字节顺序类型:
双方约定。
通讯中如果发现卡件通道上的测点值不对,可改变一下字节序。
5)功能码:
表示该卡件将选择哪个功能码和第3方通讯。
MDI、MDO、MAI、MAO分别可使用的功能码如表1所示:
卡件类型
可用功能码
备注
MDI
1(读线圈);
2(读离散量);
3(读保持寄存器);
4(读输入寄存器);
开关量除可以使用读线圈和离散量的方式读取,还可以使用读保持寄存器和输入寄存器的方式读取,一个寄存器存放16个开关量的值。
MDO
15(写多个线圈);
16(写多个寄存器);
开关量使用写线圈或者写寄存器的方式通讯,一个寄存器保存16个开关量的值。
MAI
MAO
表1
5.配置通讯任务
5.1配置文件目录
要从NT+系统安装目录的“Template/”目录下,拷贝配置文件eio.conf到新建的虚拟DPU运行目录的“config\system\”下。
5.2配置配置文件
结合卡件组态信息和通讯测点清单配置通讯任务。
Eio.conf配置文件格式如图1所示:
图1
[General]
IoDeviceCnt=1:
定义与该虚拟DPU通讯的第三方设备个数,取值范围:
1~32。
用户可根据这个值决定配置几个[IoDevice*],其中“*”表示Device序号,设置大于0的整数。
如果IoDeviceCnt=1时,只需要配置一个[IoDevice],既[IoDevice1],如上图仅表示一个[IoDevice]的配置;
如果IoDeviceCnt=2时,则还需要配置一个[IoDevice2],每个IoDevice的配置类似。
[IoDevice1]:
设备1的配置
DeviceId=1:
设备编号,如定义ECS的编号为1,取值范围:
0~65535。
Desc=ECS:
设备描述。
;
modbus=ModbuRTU,modbustcp=ModbusoverTCP,simu=simulator
protocol=modbustcp:
通讯双方确定的通讯协议,可以参照上面一行决定填哪个选项。
1:
master,0:
slave
master=1:
目前DCS一般工作在Master模式下,所以应填1。
LocalIp=192.168.0.191:
与第三方设备通讯的本地IP地址。
LocalPort=502:
与第三方设备通讯的本地端口号。
RemoteIp=192.168.0.1:
与DCS通讯的第三方设备的IP地址。
RemotePort=502:
与DCS通讯的第三方设备的端口号,如果使用ModbusoverTCP通讯,该端口号一般为502。
Delay=50:
单个任务执行的时间间隔,单位毫秒,取值范围:
大于0的整数。
SubTask=2:
定义DCS与该第三方设备通讯的任务数,取值范围:
大于1的整数。
该值将影响下面[IoDevice1_SubTask*]的配置,其中“*”表示任务序号,设置大于0的整数。
如现在任务数为2,则下面将配置[IoDevice1_SubTask1]和[IoDevice1_SubTask2],每个[IoDevice1_SubTask*]里面的配置类似,下面仅介绍[IoDevice1_SubTask1]的配置。
[IoDevice1_SubTask1]:
与设备1通讯任务1
SlaveId=1:
从站ID,双方协定,取值范围:
1~247。
FuncCode=3:
与第三方通讯的功能码,具体功能码取值及其含义见“五”部分。
StartReg=0:
该任务负责通讯的起始地址(寄存器地址或者成线圈地址)。
取值:
双方协定,地址范围0~65535。
RegCnt=64:
该任务通讯的线圈个数或者寄存器个数,根据该任务配置的具体功能码而有不同的理解。
如果功能码是读、写线圈功能的,则理解为线圈个数;
如果功能码是读、写寄存器功能的,则理解为寄存器个数。
注意1:
如果一个模拟量是浮点数,则其占将用两个寄存器。
例如为一个MAI卡件(建有32个AI测点)配置一个通讯任务,如果每个AI测点用浮点型表示,占用2个寄存器,则该任务配置的RegCnt的值应为64(2*32);
如果每个AI点用两个字节的整型表示,则其只占用一个寄存器,那么一个任务配置的RegCnt的值应为32(1*32)。
“RegCnt”的取值范围应根据具体的功能码而定,如下所示:
01(读取线圈状态):
1~2000
02(读取输入状态):
03读取保持寄存器:
1~125
04读取输入寄存器:
15强制多线圈:
16预置多寄存器:
1~123
注意2:
StartReg(起始寄存器/线圈地址)与RegCnt(每个任务通讯的长度)之间应遵循如下规则:
●第三方允许的结尾地址<
=StratReg<
=第三方允许的起始地址;
●StratReg+(RegCnt)>
=第三方允许的结尾地址;
Timeout=3000:
每个任务通讯的超时时间,取值范围:
10~3100,单位毫秒。
5.3配置虚拟卡件与通讯任务注意事项
1)一个通讯任务通讯的信息可以同时覆盖多个卡件;
2)一个卡件的信息可以由多个任务读取;
3)通讯任务与虚拟卡件之间的设备ID、从站ID、起始寄存器地址、功能码必须严格对应。
在配置任务的时候,应该事先规划好通讯任务与虚拟卡件。
4)虚拟卡件配置的起始寄存器地址(或线圈地址)和通讯任务的起始寄存器地址(或线圈地址)的差的绝对值应该满足:
●读、写线圈:
绝对值应为8的整数倍;
●读、写寄存器:
绝对值应为4的整数倍;
如果不满足这两个条件,将会提示“参数错或者配置错”,并不会完成预期的通讯任务。
5)为了满足第三方设备通讯测点的地址不连续的情况,允许卡件有些通道不创建建点,如有两个需要通讯测点的寄存器地址分别为1001和1004,那么在MAI卡件上,第一个通道将创建与地址1001对应的点,第二、三通道应空着,第四通道才创建对应地址1004的测点。
6.EIO通讯结果检测
使用算法浏览器查询虚拟DPU卡件算法,“算法状态”框将会有如下提示:
1)“算法状态”什么都没有显示:
表示通讯正常。
2)“算法状态”显示“参数错或配置错(模块)相关算法报警品质bad”。
出错原因有:
●卡件配置信息与通讯任务配置信息不符合,如从站ID、起始寄存器地址、寄存器个数、功能码等配置不一致;
●卡件的起始寄存器地址和任务的起始寄存器地址的差的绝对值不合法;
●从站ID错,与第三方设备的从站ID不符合;
●功能码错,与第三方要求使用的功能码不符合;
●Modbus地址越界,读、写第三方设备不允许的地址;
3)“算法状态”显示“通讯错”。
出错原因:
●从站设备故障;
●从站设备忙;
●存储奇偶性差错;
●通讯错(连接失败,连接断开);
●发送失败;
●接收数据超时(EIO_RECV_ERR);
7.实际工程应用举例
1)通讯对象:
DCS与FECS之间的通讯(DCS工作在主站,FECS工作在从站,从站ID为17)。
2)通讯测点信息如表2所示(该表中的测点类型、数据类型、协议地址、功能码等信息由通讯方提供):
测点类型
数值类型
起始协议地址(相对modbus地址)
测点个数
功能码
DI
Bool
1
259
AI
Float
5001
52
3
1001
89
4
DO
960
10
15
AO
2001
20
16
表2
3)卡件组态规划
如果上述每种测点的协议地址均是连续,则可在连续通道上建点,若出现测点的协议地址不连续,则可把不连续的地址补上,建点时,需为不连续的地址段空出多余的通道。
然后规划好应建多少个卡件。
假如上表均为连续地址的测点。
在卡件组态图中可建卡件如表3所示:
应用功能码
卡件类型,卡件个数
MDI,9
51
MAI,2
MAI,3
MDO,1
MAO,1
表3
卡件配置信息如表4(模块地址、卡件位置等配置与传统卡件配置类似,在此忽略):
卡件名称
设备ID
从站ID
起始寄存器号
DPU01A1
DPU01A2
33
……
依次类推,每个卡件均加32
DPU01B2
225
DPU01B3
257
DPU01B4
5065
DPU01B5
DPU01B6
1065
DPU01C1
DPU01C2
表4
4)批量建点
根据通讯方提供的通讯测点清单中的点描述以及之前规划好的卡件,可使用批量建点的方式创建通讯测点。
注意:
如果出现协议地址不连续的情况,则要求把对应的通道空出来,不需要建点。
5)配置通讯任务
配置文件eio.conf中的具体配置如下所示:
IoDeviceCnt=1//只与一个FECS通讯,所以此值设为1
[IoDevice1]//只需要配置一个IoDevice
DeviceId=1//第三方设备FECS的编号
Desc=FECS//第三方设备的描述
protocol=modbustcp//本次通讯使用modbusovertcp协议
master=1//本次通讯,DCS工作在主站模式
LocalIp=192.168.3.46//本地IP地址
LocalPort=502//本地端口号
RemoteIp=192.168.3.36//通讯端的IP地址
RemotePort=502//通讯端的端口号(Modbusovertcp服务端默认端口号)
Delay=50//任务之间的时间间隔(单位毫秒)
SubTask=6//要完成上述表3中所有卡件的通讯,至少需要配置6个通讯任务
[IoDevice1_SubTask1]//任务1,负责协议地址从1开始,点数为259的DI点通讯
SlaveId=17//从站ID
FuncCode=1//使用功能码1读取DI测点的值
StartReg=1//DI点中第一测点对应的协议地址(modbus地址)
RegCnt=259//该任务每次读取259个DI测点的值
Timeout=3000//通讯超时(单位毫秒),通讯中,如果DCS发送一个报文后在3000毫秒内后不到任何对方的应答,通讯属超时。
[IoDevice1_SubTask2]//任务2负责协议地址从5001开始,点数为52的AI点通讯
SlaveId=17
FuncCode=3//使用功能码3读取AI测点的值
StartReg=5001//AI点的起始寄存器地址
RegCnt=102//该任务读取102个寄存器(因为每个float的点占用两个寄存器,所以这里应读取51*2=102个寄存器的值)
Timeout=3000
[IoDevice1_SubTask3]//任务3负责协议地址从1001开始,点数为60的AI点通讯
FuncCode=4//使用功能码4读取AI测点的值
StartReg=1001//AI点的起始寄存器地址
RegCnt=120//读取120个寄存器的值,由于协议地址从1001开始的AI点有89个,每个都是float类型,分别占用两个寄存器,所以89个AI将占用198个寄存器。
而一个任务最多只能读取125个寄存器,所以应分布在两个任务通讯,第一个任务可通讯120个寄存器,第二个任务可通讯78个寄存器。
[IoDevice1_SubTask4]
FuncCode=4
StartReg=1121//读取寄存器地址从1121开始的AI测点
RegCnt=78//读取78个寄存器的值,解释在任务3。
[IoDevice1_SubTask5]//该任务负责写入10个DO测点的值
FuncCode=15//使用功能码15往第三方设备写入多个DO测点的值
StartReg=960//该任务对应的第一个DO测点所在的协议地址
RegCnt=10//该任务每次写入的DO测点个数
[IoDevice1_SubTask6]//该任务负责写入20个AO测点的值
FuncCode=16//使用功能码16往第三方设备写入多个AO测点的值
StartReg=2001//该任务对应的第一个AO测点所在的协议地址
RegCnt=40//该任务每次往通讯方写入的寄存器个数,由于从地址2001开始共有20个AO点,每个AO点占用两个寄存器,所以总共需要写入40个寄存器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EIO 用户 使用手册