附录1《杭州市建设工程施工安全质量物联网管理应用平台塔机接口要求》为了贯彻落实杭州市建委“关于转发浙江省住房和城乡建设厅《关于进一步加强建筑施工领域企业安全生产工作的实施意见》”的精神,有序推进杭州市建设工程塔式起重机安全监控管理系统纳入全市安全质量物联网管理应用平台,确保塔式起重机安全监控管理系统稳定可靠运行。根据物联网管理应用平台研发机构的意见,在系统实施初期,宜选择3—4家塔式起重机安全监控管理系统生产企业,进行系统试运行,试运行期6个月(至2011年底)。针对杭州市工程施工安全质量物联网管理应用平台塔式起重机安全监控管理系统接口要求,作以下接口技术规定。上传数据内容说明1)实时工作数据主要数据内容包括:风速、载重、回转、幅度、高度、力矩、报警状态、传感器状态,上报时间。注:设备开机后,首先与远程服务器建立连接,并进行注册流程;注册结束后,开始发生保存在设备端的历史记录,发送历史记录并收到服务器确认回复后,删除历史记录;发送历史记录的同时,不影响实时数据上报。2)塔机基本参数以下两种情况需要上报塔机基本参数数据:塔机注册时上报;传感器配置。3)塔机静态参数在塔机注册时上报该数据内容;主要数据内容包括但不限于:塔机类型、XY坐标、塔身高、塔顶高、前吊点等。4)工作循环记录信息塔机在每个工作循环结束时上报工作循环数据;5)塔机控制器运行记录设备每次开机超过10分钟,生成该次运行时间记录,每分钟更新一次运行时间;每十分钟向服务器发送一次本次开机、运行时间记录。主要包括内容:开机时间、运行时间。6)塔机GPS数据7)塔机时钟同步支持NTP时钟校准协议。1.控制器与服务器通信命令格式说明1.1控制器与服务器通讯协议约定塔机控制器与服务器之间使用基于IP协议的数据网络,在传输层使用TCP协议;服务器建立TCP监听,塔机控制器不启动TCP监听,塔机发起对服务器TCP连接,TCP建立后保持常连接状态不主动断开,塔机控制器定时向服务器发送心跳数据包并监测连接状态,一旦连接断开则重新建立连接。1.2控制器与服务器通信帧结构设计控制器与服务器通信帧结构如表1.1所示。表1.1控制器与服务器通信帧结构帧头:2byte帧长度:1byte帧流水号:2byte协议版本:2byte命令:1byte数据载荷:nbyte校验和:1byte帧尾:2byte0x5A550x00~0xFF0x0000~0xFFFF0x0000~0xFFFF0x00-0xFF——0x00~0xFF0x6A69如表1.1所示,控制器与服务器之间通信帧结构包括帧头子域、帧长度子域、帧流水号子域、协议版本子域、命令子域、数据载荷子域、校验和子域以及帧尾子域。其中,帧头为固定的2个字节(0x5A55);帧长度子域1个字节,其值为除帧头、帧尾外实际数据帧长度,包括帧长度子域本身的长度;帧流水号子域2个字节,约定在1分钟内,该帧流水号在系统里面是唯一的,以便区分不同帧;协议版本子域2个字节,表示命令的协议版本;命令子域1个字节,其值定义如表1.2所示;数据载荷子域的字节数n是根据不同的数据帧结构变化的,详见具体帧结构;校验和:从帧头0x5A55开始累加到校验和子域之前,包括帧头字节;帧尾为固定的2个字节(0x6A69)。说明:协议版本号用两个字节表示,采用BCD编码,高字节表示整数位,低字节表示小数位,第一版命名为:1.00。表示方法为:低字节:********:0x00高字节:********:0x01命令子域值定义如表1.2所示。表1.2命令子域值命令值描述是否必须0x01控制器向服务器注册请求必须0x02控制器向服务器注册ACK0x05上报塔机基本参数必须0x06上报塔机基本参数ACK0x07上报塔机塔机静态参数必须0x08上报塔机静态参数ACK0x09上报塔机禁行区参数可选0x0A上报塔机禁行区参数ACK0x0B控制器向服务器注销请求可选0x0C控制器向服务器注销ACK0x0D控制器向服务器发送心跳必须0x0E控制器向服务器发送心跳ACK0x10控制器上报实时数据必须0x11控制器上报实时数据ACK0x15塔机校时请求必须0x16塔机校时ACK0x17实时数据发送周期设置可选0x18实时数据发送周期设置ACK0x19控制器运行时间记录必须0x1A控制器运行时间记录ACK0x1B工作循环信息数据必须0x1C工作循环信息数据ACK0x1D上报力矩曲线参数可选0x1E上报力矩曲线参数ACK0x20读取塔机基本参数可选0x21读取塔机基本参数ACK0x22读取塔机静态参数可选0x23读取塔机静态参数ACK0x24读取塔机禁行区参数可选0x25读取塔机禁行区参数ACK0x31读取塔机报警参数可选0x32读取塔机报警参数ACK0x33读取传感器实时数据可选0x34读取传感器实时数据ACK0x35读取传感器参数可选0x36读取传感器参数ACK0x37GPS数据上报必须0x38GPS数据上报ACK0x70-0x9F开放(各设备厂商可自由使用)其他预留注:1、所有信息传输时,低字节在前,高字节在后。2、日期时间,采用BCD码表示。3、数据帧中帧头字节处理方法:特征字定义为:0x5A、0x99、0x6A。组包:数据帧中出现0x5A时,将其替换为0x990xA5(0x5A的取反);数据帧中出现0x99时,替换为0x990x66;数据帧中出现0x6A时,替换为0x990x95。上述情况下,帧长度子域、帧流水号、命令子域和数据载荷中出现特征字时,需要替换(帧长度表示实际有效数据帧长度,如果数据帧中间出现上述特征字替换后,数据帧中的帧长度子域不替换),而校验和子域出现特征字则不需要替换。解包:首先查找帧头;其次,找到帧头后,分析数据帧中如果出现0x99,分析后面一个字节的数据如果不是0xA5、0x66或者0x95中任何一个时,该帧出错,可以丢弃;如果是上述三个字节中的一个,就可以准确恢复,直到找到帧尾0x6A69结束,并完成和校验;最后,校验帧长度。如果均正确,则可以得到该正确的数据帧。4、举例:(1)06995A6A6A000000000068000000000000680000000000000000D016上述为一个用户数据帧的实际载荷,包括命令,共计28个字节,则经过组帧后,发送的完整数据为:5A5520000006996699A599959995000000000068000000000000680000000000000000D016246A69注:帧长度子域0x20(32)表示实际数据载荷28字节+1字节帧长度+2字节帧流水号+1字节校验和。(2)5A5520000006996699A599959995003600000068000000000000680000000000000000D0165A6A69上述为一个完整的数据帧,其帧校验和子域出现特征字,但不会进行替换。1.3数据上报约定按照实时数据统一保存到远程服务器的原则,设备开机后,首先与远程服务器建立连接,并进行注册流程;注册结束后,开始发送保存在设备端的历史记录,发送历史记录的同时,不影响实时数据上报。设备受到注册请求ACK之后,需要把塔机的基本参数、静态参数和GPS参数发送给服务器,具体帧格式参见表2.6、2.7和2.18。设备每次开机超过10分钟,生成该次运行时间记录,每分钟更新一次运行时间;每十分钟向服务器发送一次本次开机、运行时间记录。设备开机的注册流程见图1.1。塔吊控制器服务器上报注册请求帧注册请求ACK上报塔吊基本参数请求帧塔吊基本参数ACK上报塔吊静态参数请求帧塔吊静态参数ACK上报塔吊GPS数据请求帧塔吊GPS数据ACK上报历史/实时数据请求帧上报历史/实时数据ACK图1.12.控制器与服务器通信命令2.1控制器向服务器注册塔机注册请求帧结构如下:表2.1塔机注册请求帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本:2byte命令1byte数据载荷:21byte校验和:1byte帧尾:2byte0x5A55————0x01000x01————0x6A69ID4btye协议类型1byte硬件版本号2byte软件版本号2byteSIM卡号12byte——0x01——————说明:协议类型预留,暂填0x01;硬件版本号用两个字节表示,采用BCD编码,高字节表示整数位,低字节表示小数位,第一版命名为:1.00。表示方法为:低字节:********:0x00高字节:********:0x01软件版本号表示方面同硬件版本号;SIM卡号采用BCD码,13488234500,表示为0x013488234500。设备ID编码约定:设备ID需由平台统一分配给各个设备厂商;表2.2塔机注册响应帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本:2byte命令1byte数据载荷:10byte校验和:1byte帧尾:2byte0x5A55————0x01000x02————0x6A69ID4byte返回状态码4byte心跳间隔(s)2byte————返回状态码预留,暂填0x00;心跳间隔单位为秒,表示控制器与服务器之间发生心跳的频率;在注册流程中,发送的注册基本参数帧、注册静态参数帧见下文相关数据帧格式定义。2.2控制器向服务器注销通过发送此帧数据,向服务器通知塔机已经关机。表2.3塔机注销请求帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本2byte命令1byteID4byte校验和1byte帧尾:2byte0x5A55————0x01000x0B————0x6A69表2.4塔机注销响应帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本2byte命令1byteID4byte校验和1byte帧尾:2byte0x5A55————0x01000x0C————0x6A692.3控制器向服务器发心跳塔机向服务器端发送心跳帧,使服务器端能够确认塔机的在线状态。当服务器端收到心跳帧之后,将返回一个心跳回复帧,心跳回复帧用来维持塔机与服务器端的连接。表2.5塔机心跳请求帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本2byte命令1byteID4byte校验和1byte帧尾:2byte0x5A55————0x01000x0D————0x6A69表2.6塔机心跳响应帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本2byte命令1byteID4byte校验和1byte帧尾:2byte0x5A55————0x01000x0E————0x6A69当塔机收到心跳间隔之后,塔机根据该参数来确定心跳帧的时间间隔。当塔机连续发送3次心跳帧之后,没有收到服务器端的心跳回复,塔机认为服务器端已经掉线,将重新发起注册。2.4上报实时数据该帧数据是把一台塔机的实时参数和当前的状态发送给服务器。上位机收到该数据之后,对设备发送回复确认。当塔机在运行期间,与服务器连接不上时,保存上报的实时数据,等连接成功后,发送未及时上报的实时数据。表2.7上报塔机实时数据帧帧头:2byte帧长度:1byte帧流水号:2byte协议版本:2byte命令1byte数据载荷:33byte校验和:1byte帧尾:2byte0x5A55————0x01000x10————0x6A69年1byte月1byte日1byte时1byte分1byte秒1byte——————ID:用来标识一台塔机,在整个服务器监控的所有塔机,一个塔机对应一个ID号。数据载荷:33byteID4byte风速2byte载重2byte回转2byte幅度2byte高度2byte力矩2byte倾角2byte当前倍率2byte定幅变码2byte定码变幅2byte报警状态2byte传感器状态1byte————————————————————————风速用2byte,因为2byte表示的数据的范围是0-65535,用固定小数点表示风速。如果实际的风速为4.3m/s,那么平台收到的数据是430.,所以得到值除以100可得到实际的风速值。幅度,高度