大家好,我是一名工控新手,最近在用松下PLC做通讯的时候,遇到很多的迷惑,请各位达人指点迷津。
最近在做一套在线环境监测的系统,PLC采用松下FP-X C40R,触摸屏为松下GH07X,主要功能为每15分钟进行一个轮回的化学检测,得出一个污水成分含量监测值,同时需要把相关的数据上传到上端数据监控中心。化学检测的动作过程和计算含量值功能都已实现,现在就剩下与上端数据监控中心的数据通讯问题。
根据规定,我们系统主动发送数据到上端的数据采集仪,数据采集仪负责接收,系统与数据采集仪通信端口为RS232串口,通信协议为Mosbus-RTU。其中我们只负责我们系统数据的发送,上端的数据采集仪未知,我们只需提供相关的通讯参数。
需要传送的数据包括监测值、每次监测值对应的时间、系统运行状态、系统故障状态,他们在PLC程序中的寄存器地址如下表所示:
传送数据 | 寄存器地址 | 数据类型 |
运行状态 | DT100 | 整数 |
故障状态 | DT102 | 整数 |
监测值 | DT500 | 实数 |
年 | DT200 | 整数 |
月 | DT202 | 整数 |
日 | DT204 | 整数 |
时 | DT206 | 整数 |
分 | DT208 | 整数 |
秒 | DT210 | 整数 |
首先,笔者先进行PLC软件通信设置,选项-----PLC寄存器设置,进入页面设置COM1口如下:
笔者编的程序如下:
年月日时分秒这几个寄存器我想通过位传输指令(F5 BTM F6 DGT)把它们放到一个寄存器当中去表示年月日时分秒,然后再传送出去,因为篇幅的关系,我想另外开个帖子请教。
针对上面这些,我心里边有几个疑惑想请教:
(1)上边通信设置和程序有哪些错误,和需要改进的地方?
(2)为了使上端数据采集仪能够顺利通过Modbus-RTU协议和我们系统通讯上,我们需要提供哪些参数给对方,我能想到的有这些:
通讯端口:RS232串口
通讯协议:Modbus-RTU
波特率:9600kps
数据位:8位
停止位:1位
检验位:无
我们系统站号为:1
数据采集仪站号为:4
然后就是数据寄存的地址,比如程序中我把监测值DT500传送到4号站的DT304,这个DT304在Modbus里应该怎样表达,对方才能顺利采集到数据。是不是要转化成一个Modbus地址,是不是如下图,下图应该怎么看?:
除了上边这些,还有那些通信参数我应该提供给上端数据采集仪?
(3)CRC检验码是什么?我们需要提供吗?
暂时遇到了这些疑惑,恳请各位达人帮我解答一下,不胜感激~!