1 导言
智能楼宇工程中的中心空调、电梯、通风、给排水、照明、火灾报警等个子体系的互联计划中,选用Modbustcp协议的串行通讯方法,全面兼容modbus工业规范,数据传输牢靠,呼应速度快,扩展灵敏,通过互联网完成各子体系与中心办理体系的通讯。modbus tcp协议是在tcp/ip规范中,使用层选用工业范畴事实规范modbus。modbus运用tcp/ip使用层的502端口,这是通过世界公认的。该串行总线方法支撑各种介质的rs-232、rs-422、rs-485接口。modbus tcp的网络通讯形式选用client/server方法,如图1所示。
2 modbus tcp串行通讯剖析与完成
某智能楼宇中各子体系首要选用PLC作为主控模块,如图2所示。网络互联选用modbus tcp网络通讯形式,中心办理体系与该网络的互联是亟待解决的问题,plc将智能楼宇中各子体系的相关状况和参数信息保存于它的寄存器中,中心办理体系需求读取plc中一些坚持寄存器的数值,以此来进行智能楼宇的全面监控与办理。modbus tcp协议供给了相应指令来进行坚持寄存器的读取。
2.1 协议剖析
modbus tcp数据报文结构,如图3所示。
一次modbus tcp读取坚持寄存器的通讯剖析(省掉了ip/tcp头):
从左向右剖析该数据报文:00 03为此次通讯编号,一般每次通讯之后将被要求加1以差异不同的通讯数据报文;00 00表明协议标识符,00 00为modbus协议;00 06为数据长度,用来指示接下来数据的长度,单位字节;03为设备地址,用以标识衔接在串行线或许网络上的长途服务端的地址。以上七个字节也被称为modbus报文头。03为功用码,此刻代码03为读取坚持寄存器数据。00 00 00 01为功用码的参数,指示将被读取的坚持寄存器的地址与长度。从左向右剖析该数据报文:00 03为此次通讯编号,应对报文要求与从前对应的恳求坚持一致;00 00为协议标识符,00 00表明modbus协议;00 05为数据长度,用来指示接下来数据的长度,单位字节;03为设备地址,应对报文要求与从前对应的恳求坚持一致。以上七个字节相同为modbus报文头。03为功用码,正常情况下应对报文要求与从前对应的恳求坚持一致,假如犯错则回来80h+从前的功用码。02为功用码的第一个参数,指示接下来数据的字节长度;00 17为被读取的坚持寄存器中的数据值,即要求被读取的地址为00 00的坚持寄存器中的数值为0017h。
测验程序(master)发送数据(hex)及 plc(modbus tcp slave) 呼应数据(hex)样例剖析如图4所示。
2.2 程序流程
以下是主程序的流程图,如图5所示,首要功用是树立tcp/ip衔接以及衔接错误处理。
modbus tcp协议的每一次作业循环的流程图,如图6所示。
2.3 程序测验
;首先在ip中填上需求被衔接的服务端ip地址,然后点击connect进行衔接。衔接成功后,在oFFset中填写需求读取的坚持寄存器的开端地址,在length中填写需求读取的坚持寄存器的长度。最终点击trigger读取一次上述坚持寄存器,一起将在sent和received中显现发送及收到的数据报文(hex),并且在data monitor中显现对这些报文的解说。
3 结束语
本文对Modbustcp协议以及modbus tcp串行通讯在智能楼宇工程中的使用作了简略介绍,要点剖析研究了modbus tcp读取PLC的坚持寄存器数据的进程,并提出完成modbus tcp协议通讯的解决计划,进行编程以及调试,成功完成了预期的功用。