串行线路

Modbus RTU 的线路节点:总线上每台从站共用的那组物理参数、它的时序、它的状态、从站扫描、归在它下面的设备,以及线路启用期间被锁住的东西。

以 Markdown 查看

一条串行线路就是一条物理 Modbus RTU 总线:一个 COM 端口,加上它的波特率、字节格式和响应超时,接在这条线上的每台设备共用这一组参数。线路只存在于 Modbus RTU 驱动下面,位于驱动和它的设备之间,所以树读起来是 Modbus RTU > 线路 > 设备 > 点位。有“查看 Connector”就能看见这个页面;页面上的每个字段和每条命令都需要“配置 Connector”。

新建一条线路

有三种手势能造出一条线路:Modbus RTU 驱动页面上“串行线路”表里的添加线路,栏底“新建…”菜单里的添加串行线路(Modbus RTU),以及驱动右键菜单里的同一项。新线路名叫“新线路”(然后是“新线路 2”),取用 Windows 报告的、还没有别的线路占用的第一个串口(一个空闲的都没有时取 COM1、COM2,依此类推),起始参数是 9600 波特、8E1、1000 毫秒响应超时和 0 毫秒事务间隔,并且创建出来是已禁用的,好让你在端口打开之前先把物理参数组配好。记录条里就是这么说的:“已添加已禁用的线路‘新线路’。先配好它的物理设置,再启用它。”

标题栏

名称、健康状态圆点、状态词和物理参数组排在一行(“COM3 · 9600 · 8E1 · 1000 ms”);端口出故障时,下面还有一行红色的诊断文字。状态词是已关闭、空闲、正在连接…、在线和端口故障,各自的含义见启用与健康状态

命令栏

命令 作用 何时置灰(情况) 何时不画出来(角色)
启用 让线上的设备开始占用总线,并锁住物理参数组。 线路已经是启用的,它的参数组无效,正在扫描,或工作站拒绝改动。 没有“配置 Connector”权限时。
禁用 对线上的每台设备关闭总线,但不去动它们各自的“已启用”开关,同时解锁参数组。 线路已经关着,正在扫描,或工作站拒绝改动。 没有“配置 Connector”权限时。
删除线路(危险色,靠右) 先问一句。空线路:“要删除‘线路’吗?这条线路上没有设备。此操作无法撤销。”有设备的线路:“这同时会删除它的 3 台设备以及它们的全部点位。”删完之后选中 Modbus RTU 驱动。 正在扫描,或工作站拒绝改动。 没有“配置 Connector”权限时。

右键点线路,会在同样的启用、禁用和删除之前多出一个添加设备

“物理线路”卡片

“一条物理串行总线:这条线路上每个按从站地址寻址的设备共用的端口设置。”

字段 它是什么 取值 / 默认值 影响
名称 这条总线的友好名称,显示在树里和每台设备的“串行线路”字段里。 必填;创建时是“新线路”。 线路启用期间也能改。留空会被拒绝:“线路名称是必填的。”这个名字从不进入地址:一台 Modbus RTU 设备的地址是 Connector.ModbusRtu.<Device>.<Tag>,没有线路那一段。
串口 Windows 的 COM 端口:物理的、虚拟的或重定向的都可以。是一个文本字段,旁边有一个列出 Windows 当前报告的端口的选择器;选中一个就填进字段。刷新会重新读一次操作系统的列表,但不替换你已经打进去的内容。什么都没检测到时,选择器里只有一项不可选的“未检测到端口”,字段则写“未检测到串口。请手动输入一个。” 必填;创建时取检测到的第一个空闲端口。 线路启用期间锁住。一个端口只属于一条线路,不区分大小写,即使两条线路都禁用着也一样:第二条用同一端口的线路在保存时会被拒绝。
波特率 总线速率。 大于零;9600。 启用期间锁住。它和格式一起决定自动的帧间静默。
串行格式 数据位、校验位和停止位。 8N1、8N2、8E1、8E2、8O1、8O2;默认 8E1。 启用期间锁住。
响应超时(毫秒) 一台从站最多可以用多久来回答,超过就算这次请求失败。 100 到 60000;默认 1000。 启用期间锁住。卡片上就说了:超时放长能迁就慢设备,但也让缺席的从站和设备发现更慢才认得出来。
最小事务间隔(毫秒) 一段全线通用的静默,从一次事务尝试结束算到下一次开始,对每台从站、每次读和每次写都算,超时和失败也算在内。 0 到 1000;默认 0。 启用期间也能改;改动不必让端口重新开合就生效。填零就保持协议本身的最小值。后面跟着两个读数:自动,也就是 Modbus RTU 的下限(在配置的波特率和格式下,19200 波特及以下是 3.5 个字符时间,更高则是 1.75 毫秒);以及实际生效,取下限和你填的值中较大的那个,绝不是两者相加。说明写着它是干什么的:数值越大,线上每台从站的吞吐都越低,而且它是一种兼容性辅助手段,不是用来修接线、终端电阻、接地或干扰问题的。

卡片以三行收尾:线路的健康状态概括(“在线 · 2/2 台设备在线”“空闲 · 没有已启用的设备”“在线 · 1 台在线 · 1 台有问题”)、此刻哪些字段可以改(“线路禁用期间可以改物理设置。”或“要改物理设置,请先禁用线路。名称和事务间隔在线时也能改。”),以及那条关于超时的建议。

超出范围的值不会保存,原因落在记录条里:“串口是必填的。”“波特率必须大于零。”“响应超时必须在 100 到 60000 毫秒之间。”“最小事务间隔必须在 0 到 1000 毫秒之间。”参数组无效的线路不能启用。工作站拒绝的保存会把卡片回滚成已存下来的值。

“发现从站”卡片

只对“配置 Connector”画出来:“在这条已配置的物理线路上依次进行只读探测。”起始从站 ID结束从站 ID(1 到 247,递增;默认 1 到 32)圈定一段范围,探测会用这条线路已保存的参数组去问范围内的每一台从站;发现设备启动它,并变成取消。字段下面那一行给出最坏情况的估算(“32 次探测 · 最长约 32.1 秒,含每次探测前 4.011 毫秒的静默。”),或者点出这段范围哪里不对(“从站 ID 范围必须递增。”)。一条已启用、且至少有一台已启用设备的线路正在使用中,卡片会说出来:“这条线路正在使用中。请先禁用它再做设备发现;Ganter Lab 不会自动中断总线,也不会自动把它重新启用。”卡片上还没保存的编辑会在扫描打开端口之前先保存。结果表格已发现的从站(从站 ID、设备、结果、添加设备或打开)以及扫描本身,都在设备发现里讲。

“设备”卡片

“同一条线路上的从站 ID 必须唯一。物理设置继承自线路,在这里无法更改。”添加设备会在这条线路上、用 1 到 247 之间第一个空闲的从站 ID 创建一台设备并打开它(“已在‘线路 1’上添加设备‘新设备’。”);一个空闲的都没有时它被拒绝,说“线路‘X’上每一个有效的从站 ID 都已经占满了。”,扫描期间它置灰。表里列出设备从站 ID点位健康状态,以及打开、启用、禁用和删除这几个动作(后三个只对“配置 Connector”出现,扫描期间全部置灰)。设备自己的页面把线路和它的参数组显示为只读文字,见设备

一条线路不做什么

线路不接受文件夹:它的设备只按线路归档,不按别的,设备上也不提供“移动到”菜单。一台设备不能挪到另一条线路上;复制设备会把副本留在同一条线路上,用下一个空闲的从站 ID。参数组不能按设备各不相同,而且没有设备时端口根本不会打开:一条已启用但没有已启用设备的线路读作“空闲”,不持有任何会话,这也正是能安全扫描它的原因。