本文主要描述如何使用中科时代DeviceNet主站连接从站设备。
1. 安装设备描述文件
单击工具 ➔设备存储库 ➔ 安装。
导入厂商提供的Eds文件。
2.扫描从站
右击主站,单击扫描设备
稍等一段时间,在弹出的界面中显示扫描到的从站列表。
点击智能拷贝;设备添加到工程中。
3.下装运行
如果状态图标显示为绿色,且IP地址后提示激活的;表示连接成功。
如果工程发生了变更,则会提示登录选项,新工程直接下装运行。
登录成功后可以看到工程的运行状态。
1.1 【通用】页面
读取当前主站的波特率(在卡件处可拨码,需与网络中的从站一致)
可以实时监控当前总线负载和当前总线流量
1.2 【诊断】页面
总线状态:实时更新总线状态
总线断开: 红色表示主站没有连接到总线上,否则显示空白
网络电源异常: 红色表示总线没有连接电源,否则显示空白
接收错误: 接收超时或者接收到的数据帧错误
发送错误: 一般是发送数据帧超时
主站状态:出现此类错误后,需要排查现场设备,重新下装。
配置错误: 主站初始化出错,一般是IDE中的插件版本和RTE中的插件版本不一致
Mac地址重复: 显示红色表示有从站设备的mac id和主站一样。
内存分配错误: 显示红色表示有从站设备的mac id和主站一样。
从站状态:实时更新从站状态
远程I0通信运行: 绿色表示至少有一个从站运行正常,即【运行从站数量】>0;
通信错误: 显示红色表示至少有一个从站运行异常,即【故障从站数量】>0;
已配置从站数量: 主站下添加的从站数量(包括空闲从站)
故障从站数量: 主站下运行异常的从站数量
运行从站数量: 主站下IO通讯正常的从站数量
2.1 【通用】页面
显示当前从站的mac地址
是否使用UCMM通讯。如果使用UCMM通讯,使用的组号。
消息类型: 只支持【轮询】,从站如果选择了其他连接方式,会在诊断页面报错【不支持的连接】
双击表格区域,可以编辑连接详细信息。
PRI(ms):可为每个从站配置独立的轮询周期,即IO交换周期,单位毫秒。
连接入口:下拉框显示EDS文件中列出的可选配置文本名称,也可以选择【自定义】来自由编辑连接路径和字节数大小
路径:要下发给从站的输入/输出的具体路径(路径字段具体含义,请查询Devicenet协议文档)。
注意:如果路径填空值,则表示不下发IO配置,运行时从从站读取实际路径。扫描智能拷贝添加的从站默认不下发IO配置。
输入/输出大小(字节):告知此从站的IO字节数大小。需要与当前配置的路径一致,如果字节数大小不匹配,运行时,会在诊断页面报错**【无效IO大小】。
2.3 【用户参数】页面
如果从站EDS文件中包含下发参数,则该页面显示当前的下发参数,否则显示空。
支持修改参数值: 首先要停止运行工程,双击值进行修改,选中该参数,点击保存按钮。工程下装并运行时,会将此参数值下发到从站中。
注意: 有些参数需要从站断电重启才会生效
2.4 【只读参数】页面
2.5 【诊断】页面
配置故障: 出现此类错误后,需要排查现场设备问题,重新下装。
无效的连接路径: 显示红色表示配置的路径不合法。
无效I0大小: 【连接】页面输入的IO字节大小与实际读到的大小不一致时,会显示此错误,需修改并重新下装。
不支持的连接: 【连接】页面中配置的连接方式不是【轮询】
身份不匹配: 当前配置的从站供应商编码、产品类型、产品编号与实际读到的不一致。
其他配置错误: 提示出现的其他配置错误
运行故障: 实时显示运行过程中的一些故障状态
远程I0通信运行: 显示绿色表示从站在正常运行,否则表示通讯失败。
接收到无效的IO封包: 显示红色表示在运行的过程中接收到不正确的I0数据包
设置通讯循环时间失败: 显示红色表示设置从站的RPI失败。
提供了两个2个PLC函数用于获取主站和从站的状态。
1.1 输出
VAR_OUTPUT
status:ST_DNetMasterStatus;
bError : BOOL;
END_VAR
名称 | 类型 | 描述 |
---|---|---|
status | ST_DNetMasterStatus | 主站的运行状态 |
bError | BOOL | 函数执行是否报错 |
1.2 ST_DNetMasterStatus
主站状态结构体,字段如下:
字段 | 类型 | 说明 |
---|---|---|
total_slave_num | USINT | 已配置的从站数量 |
error_slave_num USINT | 运行异常的从站数量 | |
running_slave_num USINT | IO通讯正常的从站数量 | |
bus_off BOOL | 总线是否断开 | |
no_bus_power | BOOL | 网络电源异常 |
receive_failed | BOOL | 接收错误 |
send_failed | BOOL | 发送错误 |
config_error | BOOL | 配置错误 |
duplicate_mac_id | BOOL | mac地址重复 |
memory_alloc_error | BOOL | 内存分配错误 |
io_running | BOOL | 至少有一个从站正常通讯 |
comm_error | BOOL | 至少有一个从站通讯错误 |
1.3 示例
PROGRAM PLC_PRG
VAR
bError: BOOL;
tMasterStatus: ST_DNetMasterStatus;
END_VAR
GetMasterStatus(status=>tMasterStatus,bError=>bError);
2.1 输入
VAR_INPUT
pStatus: POINTER TO ARRAY[0..63] OF ST_DNetSlaveStatus;
cbBufLen: UDINT;
END_VAR
名称 | 类型 | 描述 |
---|---|---|
pStatus | POINTER TO ARRAY[0..63] OF ST_DNetSlaveStatus | 所有从站状态 |
cbBufLen | UDINT | pStatus缓存区的字节数大小. 至少为实际从站数量*10个字节. |
2.2 输出
VAR_OUTPUT
actualSlaveNum:USINT;
bError : BOOL;
END_VAR
名称 | 类型 | 描述 |
---|---|---|
actualSlaveNum | USINT | 实际从站数量 |
bError | BOOL | 函数执行是否报错 |
2.3 ST_DNetSlaveStatus
字段 | 类型 | 描述 |
---|---|---|
mac_id | USINT | 从站Mac地址 |
unsupported_connection | BOOL | 不支持的连接类型 |
identityMismatch | BOOL | 身份不匹配:供应商编码、产品类型、产品编码不一致 |
invalid_io_size | BOOL | 无效IO大小 |
config_error | BOOL | 其他配置错误 |
invalid_connection_path | BOOL | 非法连接路径 |
io_running | BOOL | 从站IO通讯成功 |
set_epr_failed | BOOL | 设置EPR失败 |
connect_fail | BOOL | 从站无法连接 |
recv_invalid_io_packet | BOOL | 接收到无效的IO数据包 |
2.4 示例
PROGRAM PLC_PRG
VAR
bError: BOOL;
statuses: ARRAY[0..63] OF ST_DNetSlaveStatus;
uActualSlaveNum: UINT;
END_VAR
GetAllSlaveStatus(pStatus:=ADR(statuses),cbBufLen:=SIZEOF(statuses[0])*63,actualSlaveNum=>uActualSlaveNum, bError=>bError)