JTT52/10-2023 贵州省公路隧道可编程序控制器(PLC)联网技术要求(试行)

文档天下 图书评论2阅读模式

资源简介

贵州 省交 通运 输厅 技术 指南

JTT52/10-2023

贵州省公路隧道可编程序控制器(PLC)联网技术要求(试行)

2023-03-08 发布 2023-06-01 实施

贵州 省交 通运 输厅 发布

贵州省交通运输厅技术指南

贵州省公路隧道可编程序控制器(PLC)

联网技术要求(试行)

JTT52/10-2023

主编单位:贵州交通信息与应急指挥中心江苏长天智远交通科技有限公司

批准部门:贵州省交通运输厅

实施日期:2023 年 06 月 01 日

II

III

前言

随着国家“十四五 ”规划对高速公路信息化要求越来越高, 国家标准不断更新,贵州省高速公路路网规划和信息化技术不断发展,根据《国家综合立体交通网规划纲要》、《贵州省推进交通强国建设实施纲要》、《贵州省“ 十四五 ”交通运输科技创新发展规划》、《贵州省“ 十四五 ”数字交通发展规划》、《贵州省高速公路机电系统实施指南》等文件及有关规范要求,为充分满足全省PLC 系统的建设要求,规范统一隧道监控平台,实现全省公路隧道PLC 系统的互联互通,结合贵州省的实际情况,特制定本指南。

本指南由贵州省交通运输厅提出并归口。

本指南由贵州交通信息与应急指挥中心组织实施。

起草单位:贵州交通信息与应急指挥中心、江苏长天智远交通科技有限公司

技术支持单位:南京南大安高智能科技发展有限公司

主要起草人:杨霖、陈勇、赵阳、张佳荣、王一屹、龚睿、宋宇航、杨真豪、谭征兵、杨剑凌、王海、陈晓静、于昊、梁凯、张钺、周旋、付仲。

IV

目录

1 总则 1

2 规范性引用文件 1

3 术语和定义 2

4 总体要求 2

4.1 概述 2

4.2 PLC 系统典型架构及要求 4

5 技术要求 5

5.1 PLC 基本功能 5

5.2 PLC 基本配置 6

5.3 PLC 对接设备基本功能 11

5.4 符合性要求 13

5.5 组网及通讯协议要求 13

6 命名规范 14

附录 A 通讯协议 15

A.1 Modbus 数据模型 15

A.2 Modbus-ASCII 15

A.3 Modbus-RTU 20

A.4 Modbus-TCP 24

附录 B 下位机推荐点位配置模板 26

B.1 交通信号灯 26

B.2 车道指示器 26

B.3 照明灯具 26

V

B.4 卷帘门 27

B.5 风机 27

B.6 水泵 27

B.7 亮度检测器 27

B.8 环境检测器 28

B.9 风速风向检测器 28

B. 10 液位检测器 28

B.11 其他设备/信号量的配置 29

附录 C 平台间交互协议 30

C.1 通讯规范定义 30

C.2 通讯协议 30

VI

1 总则

1.1.1 为规范和指导贵州省公路隧道可编程序控制器(PLC) 系统的建设、运行

及维护管理,满足隧道控制设备PLC 互联互通的管理需要,提高贵州省公路隧道 PLC 联网应用,提升路网运行管理和应急处置水平,制定本联网技术要求。

1.1.2 本技术要求主要适用于全省交通行业已建、新建、改扩建公路隧道 PLC 控制系统的设计、建设、改造和维护。

1.1.3 本技术要求规定了贵州省公路隧道 PLC 总体要求、技术要求、符合性要

求、命名规范要求、PLC 通讯协议要求、点位配置、平台间交互协议等内容。

1.1.4 贵州省交通信息与应急指挥中心(贵州省路网中心)是全省各交通行业监

控及应急指挥调度的枢纽,各高速公路隧道控制设备PLC 应按照本要求设计、建设及维护, 由省中心指导管理。

1.1.5 公路隧道可编程序控制器(PLC)建设除应符合本标准的规定外,还应符合国家和行业现行有关标准的规定。

2 规范性引用文件

下列文件中的条款通过本部分的引用而成为本部分的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本技术要求。凡是不注日期的引用文件,其最新版本适用于本技术要求。

(1) JT/T 608-2004 隧道可编程控制器

(2) GB/T 4208 外壳防护等级(IP代码)

(3) JT/T 817-2011 公路机电系统设备通用技术要求及检测方法

1

3 术语和定义

3.1.1 可编程序控制器

可编程序控制器(Programmable Logic Controller,简称 PLC)是一种用于工业环境的数字式操作的电子系统。它采用一种可编程的存储器,在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,通过数字式或模拟式的输入输出来控制各种类型的机械设备或生产过程。

3.1.2 上位机

人可以直接发出操控命令的计算机,一般是 PC,屏幕上可以显示各种信号变化(液压,水位,温度等)。

3.1.3 下位机

下位机是直接控制设备获取设备状况的电子系统,本文指 PLC。

4 总体要求

4.1 概述

4.1.1 全省PLC 平台架构模式根据贵州省高速公路机电系统管理体制不同采用不同模式。各类接入模式见图 1 总体架构图。

4.1.2 贵州省内建设高速公路监控管理体制:贵州交通信息与应急指挥中心(省

路网中心)--区域中心/路段中心--(桥隧站)--前端设备。

2

4.1.3 总体架构

根据贵州省交通行业相关规划及文件要求,全省PLC系统总体架构如图所示。

省级

路段级

桥隧级

前端

设备

其他业主路段中心

单位平台

桥隧站平台

监控网监控网

区域中心

平台

贵州交通信息与

应急指挥中心

贵州高速

公路集团

业主单位

照明

亮度检测器

液位检测器

风机

PLC

. . .

图 1 总体架构图

3

4.2 PLC 系统典型架构及要求

隧道内PLC 系统典型架构如图 2-图 5 所示。

4.2.1 PLC 典型架构 1

在隧道一侧洞口配电房内设一套主控 PLC,隧道内每隔一定的距离设置一套区域 PLC。架构图如图 2 所示。

隧道环网

工业以太网交换机

交换机

火灾报警主机

消防水泵控制器

主PLC

电力监控

桥隧管理站

通信系统

隧道左洞PLC1隧道口配电房

隧道右洞PLC1

光纤

图 2 PLC 典型架构图-1

4.2.2 PLC 典型架构 2

在隧道出入口两侧配电房内各设一套主控 PLC,隧道内每隔一定的距离设置一套区域 PLC。架构图如图3 所示。

隧道左洞PLC1

隧道左洞PLC3

隧道右洞PLC3

隧道左洞PLC2

隧道右洞PLC2

隧道口配电房

消防水泵

图 3 PLC 典型架构图-2

4

4.2.3 PLC 典型架构 3

在隧道出入口两侧配电房内各设一套主控 PLC, 同时根据实际情况在隧道内横洞配电房设置一至两套主控 PLC。隧道内其他位置每隔一定距离设置一台区域 PLC。架构图如图 4 所示。

隧道右洞PLCN

隧道左洞PLCN

横洞配电房

交换机交换机

图 4 PLC 典型架构图-3

5 技术要求

5.1 PLC 基本功能

( 1 )PLC 应支持 Modbus 协议。

(2)PLC 应支持多会话和多连接,确保通讯链路不会被单一程序独占。

(3)PLC 可收集本区域检测设备检测的信息,包括一氧化碳检测器、能见度检测器、风速风向仪、亮度检测器等。

(4)PLC 可对收集信息进行预处理,并储存在本地的存储单元内。

( 5 )隧道内的区域PLC 的存储单元中处理好的信息上传给隧道管理站计算机。

(6)接收隧道管理站计算机的各种控制命令,将控制命令和设备运行状态

5

进行比较,经过逻辑判断后,再发出对下端执行设备的控制指令(如发给车道指示器、交通信号灯、风机、照明、车行横洞卷帘门等设备的指令)。

( 7 )主控PLC 应配置触摸屏。当通信中断或其他原因和上端失去联系时,可进行手动操作。

(8)主控PLC 应支持双 CPU冗余、双电源冗余、总线冗余等冗余容错机制,有效增强系统的安全可靠性。

(9)具有总线自诊断能力,支持在线侦错模式及仿真调试。

( 10)PLC 的 CPU模块具有故障自诊断功能、错误显示功能,支持快速定位错误模块。

5.2 PLC 基本配置

5.2.1 主控 PLC 技术指标

( 1 )CPU 单元

—采用不低于高速 32位处理器芯片性能的处理器;

—主控PLC 采用双 CPU、双电源架构,硬件形式热冗余备份,模块支持热插拔操作;

—双 CPU之间可实现自动同步,故障毫秒级自动切换;

—程序存储容量不低于 4K 步或 8MB,I/O 点位数应冗余设置,设计点位冗余量不低于 10%;

—指令处理速度不低于 0.2us/位指令;

—支持系统的硬件组态、逻辑控制、远程 I/O、PID 控制数据处理和存储等功能,支持算术表达式特殊指令 ;支持智能通风、智能灯控算法模块(符合《公路隧道提质升级行动技术指南》要求);

6

—支持硬件看门狗保护,警戒时钟定时器 2000ms ;

—CPU 本体至少标配 1 路以太网口, 1 路串口或具备串口扩展能力,方便实现与第三方智能设备的连接,支持 Modbus 通讯协议;

—输入电源 DC24V ± 10%或AC220V ± 10%;

—具有自诊断功能:CPU 故障、I/O 校验错误、上位机链接出错、存储器故障等,可以监视到每一个模块和对应通道的实时系统诊断;

—CPU 集成状态显示功能,以便故障保持和诊断设置,随时监控 CPU的运行状态;

—条件允许情况下,建议 CPU和 I/O 模块使用同一系列;

—平均无故障间隔时间(MTBF) ≥6 万小时

(2)数字量输入模块

—输入点数: 16/32 点;

—输入电压:DC24V;

—每点光电隔离,响应时间≤1ms;

(3)数字量输出模块

—输出点数: 16/32 点;

(4)模拟量输入单元

—输入通道数:4/8 路;

—输入范围可在以下范围内选用:0-5V\-5-5V\0- 10V\- 10- 10V\0-20mA\4-

20mA;

—分辨率: ≥ 16 位;

7

—转换速度: ≤2ms/点;

—总精度:± 0.4%;

(5)串行通信单元

—端口类型: RS232C / RS485 口不少于 2 路;

—支持多种协议,能与其他厂商产品进行数据通讯;

(6)模拟量输出单元

—输出通道数:4/8 路;

—输出范围可在以下范围内选用:0-5V\-5-5V\0- 10V\- 10- 10V\0-20mA\4- 20mA\-20-20mA;

—转换速度: ≤ 2ms/点;

5.2.2 区域 PLC 技术指标

—区域PLC 采用单 CPU、双电源架构,模块支持热插拔操作;

—程序存储容量不低于 2K 步或 4MB,I/O 点位数应冗余设置,设计点位冗余量不低于 10%;

—指令处理速度至少 0.4us/位指令;

8

—CPU 本体至少标配 1 路以太网口, 1 路串口或具备串口扩展能力,方便

实现与第三方设备的连接,支持 Modbus 通讯协议;

9

—端口类型: RS232C / RS485 口 2 路;

5.2.3 PLC 控制柜使用条件

PLC 控制柜需有20%的预留空间, 以便远期扩容和增加元件,机柜的结构和所有内部连线符合IEC 标准的具体要求。所有机柜装配完整,所有电气工作,符合电气规范的应用要求。

( 1 )供电电源

DC 直流 24V,单相交流 220v,( - 10%,+15%),50Hz

(2)环境条件

环境温度在-10℃-55℃ , 防止太阳光直接照射 ; 空气的相对湿度应小于85%(无凝露)。远离强烈的震动源,防止震动频率为 10-55HZ 的频繁或连续震动。避免有腐蚀和易燃的气体。

(3)防护等级要求

室外使用的PLC 控制柜应采取防雨、防尘措施,外壳的防护等级按 GB/T

10

4208 和 JT/T 817 的规定不低于 IP55,机房和配电房内使用的 PLC 控制柜应采取防护措施,外壳的防护等级按 GB/T 4208 和 JT/T 817 的规定不低于 IP3X。

5.3 PLC 对接设备基本功能

PLC 对接设备应满足下文描述的基本功能和要求。

5.3.1 控制照明

PLC 能够控制照明设备,包括控制设备开启、关闭等功能 ;支持本地控制模式和远程控制模式并行使用功能 ;能够实时监测设备的运行状态,包括开灯、关灯、故障等基本状态反馈功能。

5.3.2 控制风机

PLC 能够控制风机设备,包括控制设备正转、反转、停止等基本操作 ;支持本地控制模式和远程控制模式 ;能够实时监测设备的运行状态,包括正转、反转、停止、软启故障等基本状态反馈。

5.3.3 控制车行横道卷帘门

PLC 能够控制车行横道卷帘门设备,控制设备上升、下降、停止等基本操作 ;支持本地控制模式和远程控制模式 ;能够实时监测设备的运行状态,包括上升到顶、下降到底、未完全关闭、故障等基本状态反馈。

5.3.4 控制车道指示器

PLC 能够控制车道指示器,控制其正反面显示直行绿箭、禁行红叉、左转绿箭等基本操作 ;能够实时监测正面和反面的运行状态,包括熄灯、显示绿色箭头、显示红叉、显示左转箭头、故障等基本状态反馈。

11

5.3.5 控制交通信号灯

PLC 能够控制交通信号灯设备,控制其开启红灯、黄灯、绿灯、左转(掉头)灯等基本操作 ;能够实时监测其运行状态,包括熄灯、红灯亮、黄灯亮、绿灯亮、左转(掉头)灯亮、故障等基本状态反馈。

5.3.6 控制水泵

PLC 能够控制水泵设备,控制设备开启、关闭等基本功能 ;支持本地控制模式和远程控制模式 ;能够实时监测设备的运行状态,包括正在运行、停止、故障等基本状态反馈。

5.3.7 监测液位

PLC 能够监测液位检测器设备,实时监测高低位水池液位值、低水位报警信号、高水位报警信号、故障等状态反馈数据。

5.3.8 监测亮度

PLC 能够监测亮度检测器设备,实时监测洞内洞外光强值、照度值、故障等状态反馈数据。

5.3.9 监测环境

PLC 能够监测环境检测设备,实时监测洞内一氧化碳 CO 浓度值、能见度VI 值、二氧化氮值、故障等状态反馈数据。

5.3. 10 监测风速风向

PLC 能够监测风速风向检测器设备,实时监测洞内风速值、风向值、故障等状态反馈数据。

12

5.4 符合性要求

隧道可编程序控制器及其系统应满足以下 k 符合性要求。

5.4.1 隧道可编程序控制器(PLC)应符合电磁兼容(EMC)方面的相关要求,

以确保其抗干扰能力(EMS), 同时不对其他系统和设备造成干扰(EMI)。

5.4.2 隧道可编程序控制器(PLC)应符合安规(LVD)方面的相关要求,确保其在使用时的安全性。

5.4.3 隧道可编程序控制器(PLC)应满足冗余和插拔方面的相关要求,确保其在使用时的可靠性。

5.4.4 隧道可编程序控制器(PLC)应满足 JT/T 608《隧道可编程控制器》标准

中的相关技术指标要求,确保其适用性。

5.5 组网及通讯协议要求

5.5.1 组网要求

前端PLC 采集隧道内设备数据,通过隧道内架设的双环光纤冗余现场以太网上传到值守点主控 PLC,值守点可通过近端工控机对所管辖隧道内的数据进行整合,并对需要调整设备运行的情况的指令进行近端下发,完成对隧道设备的近端控制 ;各值守点汇集数据信息,通过光纤环网上传到隧道监控中心,隧道监控中心通过中心工控机对高速所有隧道设备数据进行整合,并根据实际道路情况向近端PLC 下发运行指令。

隧道 PLC 设备之间采用光纤环网网络连接,PLC 设备与隧道管理站网络中的主机通过以太网进行通讯,可以做到直接互访,确保监控软件可以直接采集

13

到隧道机电设备的功能状态数据。

5.5.2 通讯协议要求

1、各层级对接要求及方式

上位机通过 TCP 与 PLC 下位机进行通信。

2、对接协议

PLC 支持 Modbus 协议,具体协议内容见附录 A。平台间通讯协议需满足附录 C 要求。

6 命名规范

6.1.1 隧道常见PLC 控制的设备包括交通信号灯、车道指示器、照明灯具、卷帘

门、风机、水泵、亮度检测器、环境检测器、风速风向检测器、液位检测器等。

6.1.2 交通信号灯、车道指示器、照明灯具等PLC 控制的设备点位地址及命名建议模版应参照附录 B 的要求。

14

附录 A 通讯协议

PLC 支持 Modbus 协议,具体协议内容如下。

A.1 Modbus 数据模型

Modbus 共有四种数据模型,如下:

数据模型

对象类型

访问类型

输入离散量

单个比特

只读

线圈

读写

输入寄存器

16 比特(2字节)

保持寄存器

注:输入寄存器、保持寄存器的子位可以被看作“单个比特” 的数据模型。

A.2 Modbus-ASCII

上位机与下位机的每次通信过程应包括完整的一个来回。上位机向下位机发送请求帧,下位机向上位机返回响应帧。

请求帧结构:

内容

字节数

说明

下位机地址

1 字节

由下位机厂家设定,默认情况下是

0x01

指令码

表明此帧的功能

数据

不定长

由指令码决定

响应帧结构:

同命令帧

响应码

正常响应,响应码=指令码 ;错误响应,响应码=指令码+0x80

2.1 下位机地址

由下位机厂家提供,用于标识下位机,一般情况下,默认为 0x01。

15

2.2 指令码

建议使用“线圈”处理 BOOL 型数据、使用“保持寄存器”处理整型/浮点型数据。二者常用的指令码,如下:

指令码(十进

制)

对象

对象数量

01

单个/多个

03

16

2.3 数据

以下是根据指令码详述请求、响应帧结构。下述说明中省略了下位机地址。

(1)、01(0x01)读线圈

读取单个/多个连续地址的线圈状态。线圈状态是比特类型,0 代表 OFF, 1 代表 ON。请求:

起始地址

2 字节

范围:0x0000 至 0xFFFF

线圈数量

范围:0x0001 至 0x07D0(2000)。其值用

M 表示。

响应(正常):

线圈状态的字节长度

N

线圈状态

N 字节

响应(错误):

0x81

异常码

说明:

a)、响应(正常)中,N =M/8,如果余数不等于 0,那么 N=N+1。如 M=7,则 N= 1; M=24,则 N=3。

b)、响应(正常)中,线圈状态的解析,如下:

假设请求帧中的起始地址是 0x0011(17),M= 19,对应的地址范围是 17-35,则 N=3,响应的线圈状态有 3 个字节:0xCD,0x6B,0x05。

17-24 地址的状态对应于第一字节 0xCD(二进制展开为 1100 1101),解析顺序为 24- 17, 即

地址

24

23

22

21

20

19

18

17

状态

0

25-32 地址的状态对应于第二字节 0x6B(二进制展开为 0110 1011 ),解析顺序为 32- 25, 即

32

31

30

29

28

27

26

25

33-35 地址的状态对应于第三字节 0x05 (二进制展开为 0000 0101),解析顺序为 35- 33, 即

无效

35

34

33

(2)、15(0x0F)写多个线圈

修改单个/多个连续地址的线圈的值(状态)。0 代表 OFF, 1 代表 ON。请求:

0x0F

输出数量

范围:0x0001 至 0x07B0。指想要修改的

线圈数量, 以 M 表示。

输出值的字节长度

输出值

同请求帧

0x8F

a)、请求帧中,N=M/8, 如果余数不等于 0,那么 N=N+1。如 M= 11,则 N=2; M=32,则 N=4。

b)、请求帧中,输入值的计算,从起始地址开始,每 8 个地址的值组成 1 个字节,低地址值在字节的低位,对于不足 8 个地址的部分,采用补 0.。示例如下:

假设想要对起始地址为 21 的连续 10 个线圈进行如下赋值,

赋值

依据 a)的计算公式,输入值有 2 个字节(N=2)。

第 1 个字节对应的地址是 21-28,其值按照如下逆序组成,

按照上表,第 1 个字节的值为 1101 0010 , 即 0xD2。

第 2 个字节对应的地址是 29-30, 由于长度不足 8 位,所以需要用 0 来补足,具体如下,

补 0

按照上表,第 2 个字节的值为 0000 0001, 即 0x01。

(3)、03(0x03)读保持寄存器

读取单个/多个连续地址的保持寄存器值。每个保持寄存器的值由 2 个字节组成。请求:

0x03

寄存器数量

范围:0x0001 至 0x007D( 125)。其值用

寄存器值的字节长度

寄存器值

0x83

a)、响应(正常)中,N=M*2。

b)、响应(正常)中,寄存器值的解析,如下:

每个寄存器值是由 2 个字节组成的,高位在前、低位在后。从起始地址开始,每个地

址对应 2 个字节。示例如下,

假设请求帧中的起始地址是 23,寄存器数量为 3(M=3),则 N=6,寄存器值有 6 个字

节:0x34,0x01,0x78,0x20,0x43,0x19那么,各地址的值为,

0x3401

0x7820

0x4319

(4)、16(0x10)写多个保持寄存器

修改单个/多个连续地址的保持寄存器的值。

请求:

0x10

范围:0x0001 至 0x007B。指想要修改的

寄存器数量, 以 M 表示。

0x90

a)、请求帧中,N=M*2。

b)、请求帧中,寄存器值的计算,按照“地址由低到高的顺序”,“每个寄存器数值高位在前、低位在后”,依序组合而成。示例如下:

假设想要对起始地址是 123 的连续 5 个保持寄存器进行如下赋值。

123

124

125

126

127

0x1378

0x2496

0x3857

0x3759

0x0421

按照 a)的计算公式,寄存器值有 10 个字节(N=5*2),其组成如下。

0x13,0x78,0x24,0x96,0x38,0x57,0x37,0x59,0x04,0x21

A.3 Modbus-RTU

相较于 Modbus-ASCII 协议, 只是在其后添加了 2 字节 CRC(请求帧、响应帧后均添

加),低位字节在前,高位字节在后。

帧结构:Modbus-ASCII + 2 字节 CRC

CRC 的计算范围是 Modbus-ASCII 部分,算法如下:

/* CRC 高位字节值表*/

static unsigned char auchCRCHitest[] = {

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,

0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

0x81,

0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x40

};

/* CRC 低位字节值表*/

static char auchCRCLotest[] = {

0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5,

0xC4,

0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9,

0x09,

0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F,

0xDD,

0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13,

0xD3,

0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,

0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE,

0xFA,

0x3A,

0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A,

0xEA,

0xEE,

0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7,

0xE6,

0x26,

0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63,

0xA3,

0xA2,

0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D,

0xAF,

0x6F,

0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9,

0x79,

0xBB,

0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74,

0x75,

0xB5,

0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,

0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,

0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58,

0x98,

0x88,

0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D,

0x4C,

0x8C,

0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,

// CRC 计算!

unsigned short gen_crc(unsigned char* puchMsg, unsigned int usDataLen) //unsigned char *puchMsg; /* 要进行 CRC 校验的消息 */

//unsigned short usDataLen; /* 消息中字节数 */

{

unsigned char uchCRCHi = 0xFF ; /* 高 CRC 字节初始化 */

unsigned char uchCRCLo = 0xFF ; /* 低 CRC 字节初始化 */

unsigned uIndex ; /* CRC 循环中的索引 */

while (usDataLen--) /* 传输消息缓冲区 */

uIndex = uchCRCLo ^ *puchMsg++ ; /* 计算 CRC */ uchCRCLo = uchCRCHi ^ auchCRCHitest[uIndex] ;

uchCRCHi = auchCRCLotest[uIndex] ; }

return (uchCRCHi << 8 | uchCRCLo) ; }

如下位机地址为 0,读取起始地址为 0 的连续 6 个输入寄存器的值:

请求帧(十六进制):

00 04 00 00 00 06 71 d9

响应帧(十六进制):

00 04 0C 00 CA 01 F2 00 D6 00 9D 00 D2 00 D7 7F BB

A.4 Modbus-TCP

相较于 Modbus-ASCII 协议, 只是在其前添加了 6 字节长度信息(请求帧、响应帧后均添加),高位字节在前,低位字节在后。

帧结构:6 字节长度信息 + Modbus-ASCII

6 字节长度信息是指 Modbus-ASCII 部分的字节长度。以下是一段 Modbus-TCP 协议的请求响应示例,下位机地址为 1,读取起始地址为 1 的连续 3 个保持寄存器的值:

00 00 00 00 00 06 01 03 00 01 00 03响应帧(十六进制):

00 00 00 00 00 09 01 03 06 53 A6 04 D2 08 BA

附录 B 下位机推荐点位配置模板

B.1 交通信号灯

控制点位: 红灯、绿灯、黄灯、转向灯。

点位类型:线圈。

指令码(十进制): 15。

反馈点位: 红灯、绿灯、黄灯、转向灯、故障。

指令码(十进制):01。

B.2 车道指示器

控制点位:正面绿箭、正面红叉、正面转向、反面绿箭、反面红叉、反面转向。

反馈点位: 正面绿箭、正面红叉、正面转向、反面绿箭、反面红叉、反面转向、故障。

B.3 照明灯具

控制点位: 开启、关闭。

反馈点位:远控、开启、关闭、故障。

B.4 卷帘门

控制点位:上升、下降、停止。

反馈点位:远控、上限、下限、停止、故障。

B.5 风机

控制点位:正转、反转、停止。

反馈点位:远控、正转、反转、停止、故障。

B.6 水泵

B.7 亮度检测器

反馈点位:故障、光强检测值、光照检测值、色温检测值。

故障:点位类型为线圈 ;指令码(十进制)为 01。

光强检测值、光照检测值、色温检测值:

点位类型:保持寄存器。

指令码(十进制):03。

说明: 当检测值为整型时,需要提供相应的计算公式。

B.8 环境检测器

反馈点位:故障、CO 检测值、VI 检测值、二氧化氮检测值。

CO 检测值、VI 检测值、二氧化氮检测值:

B.9 风速风向检测器

反馈点位:故障、风向、风速值

故障、风向:点位类型为线圈 ;指令码(十进制)为 01。

风速值:

说明: 当风速值为整型时,需要提供相应的计算公式。

B. 10 液位检测器

反馈点位:故障、水位上限、水位下限、水位高度值。

故障、水位上限、水位下限:

水位高度值:

说明: 当水位高度值为整型时,需要提供相应的计算公式。

B.11 其他设备/信号量的配置

(1)、控制点位

BOOL 型

整型/浮点型

指令码(十进制): 16。

(2)、反馈点位

附录 C 平台间交互协议

为实现上级平台与各路段监控中心或桥隧站( 以下简称 “本地端”)设备的互联互通,制定此平台交互协议( 以下简称“新协议”),实现上级平台对下级设备的统一监管。

新协议对《贵州省联网监控系统信息编码与数据接口技术要求》( 以下简称“ 旧协议”)进行了调整升级,包括在保留原有功能的前提下,简化了旧协议的对接流程, 降低了本地端与上级平台的数据对接应用程序开发门槛,为后续协议的扩展、升级提供了技术保证。

已建成的本地端平台,在跟上级平台数据交互时,条件允许情况下,建议升级使用新协议进行数据交互。新建或改扩建路段在开发本地端平台时,应使用新协议与上级平台通讯。

C. 1 通讯规范定义

上级平台下发的控制指令采用 HTTP 协议, POST 传输方式进行通讯。

本地端的检测数据、控制结果反馈等数据采用消息中间件(以下简称“MQ”)方式向上级平台推送 ;上级平台实际部署 RocketMQ 产品 ;使用 MQ 通讯时,所有主题(Topic)、标签(Tag),均只采用小写字母、下划线、阿拉伯数字组成。

所有交互信息的数据结构均为 JSON 格式。

所有交互信息的字符集均为 UTF-8。

通讯仅支持 IPv4。

C.2 通讯协议

本协议适用于上级平台与本地端平台软件之间的通讯,不支持上级平台与本地设备的直接通讯。

为安全起见,本地端接口应实现白名单过滤功能(如 IP 限制),拒绝未知第三方调用,仅授权可信任上级平台访问,仅接收上级平台下发的控制指令。

C.2. 1上级平台下发控制指令

C.2.1. 1PLC 管控设备遥控指令

本命令用于上级平台向本地端监控软件平台下发设备控制命令。

请求接口

请求方式

接口地址

POST/JSON

http://ip:port/XXX/XXX

XXX 表示实际接口地址字符串

请求内容

JSON 内容示例:

"cmdid":"指令唯一编号",

"devcode":"设备唯一编号",

"operator":"操作者",

,

"sendtime":"2022-01-01 01:01:01"

"tccode": "遥控指令" }

JSON 内容说明:

cmdid

指令唯一编号

[非必须项]

用以辅助本地端发送执行结果回调,每次都要保证唯一;

devcode

设备唯一编号

operator

指令发送方、操作人

sendtime

指令下发时间

2022-01-01 01:01:01

tccode

遥控指令

具体见后文遥控指令明细表

响应内容

下级本地端正确接收完上级平台发来的设备遥控指令后,立即向上级平台响应报文。

"flag":"ACK",

" ""

msg":

}

JSON内容说明:

flag

结果

[必须项]

ACK:正确接收

ERR:异常

msg

具体描述

本地端的最终控制结果,根据实际控制情况,稍后再通过后文消息中间件方式推送通知上级平台。

遥控指令明细表

设备类型

设备动作

控制指令

照明灯具

开灯

100

关灯

101

车道指示器

正向通行

120

禁行

121

逆向通行

122

左转

交通信号灯

红灯

160

黄灯

161

绿灯

162

转向灯

163

水泵

启动

180

停止

181

正转

300

反转

301

302

车行横洞卷帘门

上升

320

下降

321

322

C.2.2本地端上传数据

C.2.2. 1 控制指令执行结果反馈

下级本地端执行完上级平台下发的控制指令后,将实际执行结果推送到上级平台。

消息主题 Topic

tp_ctrldev_result

消息标签 Tag

本地端编号, 由上级平台分配,例如“200100001 ”

消息发送方

本地端

消息接收方

上级平台

本地端接收设备控制指令后,实际执行结果

"head":

"srcode":"200100001" ,

"dctype":"ST" },

"data":

"cmdtype":"CTC",

"cmdid":"befw23jra8234981h4hkjwer13uytht0", "donetime":"2022-01-01 01:01:01"

"donestatus":"0" ,

"donemsg":"成功" }

head

头域

srcode

本地端唯一编号

上级平台分配

dctype

设备编号类型

ST:标准设备编号,上级平台分配,绝对唯一;

data

数据域

cmdtype

控制类型

CTC:遥控指令

CTR:遥调指令

接收到的控制指令唯一编号

donetime

执行时间

donestatus

执行状态

0:成功

1:失败

2:设备无响应

donemsg

C.2.2.2 设备(在线)状态上传

本地端向上级平台推送每个设备的在线状态,每小时至少推送一次。

tp_devstate

本地端编号,由上级平台分配,例如“200100001”

每个设备在线状态

"devcode":"设备编号", "devstate":"0"

"createtime":"2022-01-01 01:01:01"

设备编号

createtime

采集时间

devstate

在线状态

0:在线

1:离线

2:无响应(在线但无正确应答)

C.2.2.3PLC 管控设备(遥信)状态上传

遥信状态数据一般用来反映照明灯具、车道指示器、交通信号灯、横洞卷帘门、风机、水泵等PLC 管控设备的运行状态,每小时至少推送一次 ;运行状态发生改变后,应立刻将其最新状态推送到上级平台。

tp_dev_ts_state

PLC 管控设备运行状态

"devcode":"设备编号",

"isremote":"0" ,

"ismanual":"0" ,

"runstate":"60"

isremote

远程/本地模式

0:远程控制模式

1:本地控制模式

ismanual

手动/自动模式

0:手动控制模式

1: 自动控制模式

runstate

运行状态

具体见后文运行状态明细表

运行状态明细表:

设备分类

运行状态编号

50

51

60

61

62

相向

63

左转通行

64

80

81

82

83

36

水泵启动 220

221

280

281

282

上升到顶

400

下降到底

401

未关闭

402

C.2.2.4PLC 管控设备(遥测)数据上传

遥测数据一般用来量化反映环境检测器、光强亮度检测器、风速仪、液位检测器等PLC 管控设备检测的实地环境情况,本地端周期性地向上级平台推送,每小时至少推送一次。

tp_dev_tm_value

PLC 管控设备遥测数据

"co": "0. 1" ,

37

"vi": " 10" ,

"no2": "0.2”, “cd”: null,

“lx”: null,

“klv”: null,

“windspd”: null,

“winddir”: null,

“poolalert”: null, “poolheight”: null

环境检测类设备

co

CO 浓度

单位:ppm

vi

烟雾浓度(能见度)

单位: 1/km

no2

二氧化氮浓度

光强类设备

cd

光强度

单位:cd/m²

lx

光照度

单位:lx

klv

色温

单位:k

风速类设备

windspd

风速

单位:m/s

winddir

风向

- 1:逆向

38

1:正向

液位检测器类设备

poolalert

液位超限反馈

- 1:低水位反馈

0:水位正常

1:高水位反馈

poolheight

液位高度

单位:m

39

资源下载此资源下载价格为6金币立即购买,VIP免费

1.本站大部份文档均属免费,部份收费文档,经过本站分类整理,花了精力和时间,收费文档是为了网站运营成本等费用开支;
2.购买会员(或单次下载)即视为对网站的赞助、打赏,非商业交易行为(不认同此观点请勿支付)请慎重考虑;
3.所有收费文档都真实可靠,为了节约成本,文档在网站前台不做预览,如果付费后,与实际文档不符合,都可以加微信号:pdftj888申请退款;
4.付费下载过程中,如果遇到下载问题,都可以加微信号pdftj888解决;
5.手机支付,尽量选择支付宝支付;
6.如图集或者标准不清楚,在本站找不到您需要的规范和图集,希望增加资料等任何问题,可联系微信号:pdftj888解决;

文档天下
  • 本文由 发表于 2026年7月10日 16:26:06
  • 转载请务必保留本文链接:https://www.998pdf.com/76100.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: