这次项目用到了称重控制器,客户要求能采集称重数据,所以需要用通讯方式采集。这款控制器是支持modbus协议的。
三菱Q系列串口通信协议支持功能-mobus协议
接线是RS232方式,所以PLC模块选的是QJ71C24N-R2,带两个232串口。modbus实际上可以一个串口接多个从站的,也就是可以一个串口并联接两个以上控制器。但是我这个模块本身有两个串口(一个串口的没得卖)。干脆就分开接线,一个控制器接一个串口,这样程序可以复制而且不需要搞那么多变量,编程简单些。
三菱Q系列串口通信协议支持功能-mobus协议
下面看接线下图是手册
实际接线是:T对PLC侧232的2脚,R对3脚,CGD对5脚,PLC侧的4脚和6脚短接,7脚和8脚短接。
看下手册的通讯协议:
都是16进制表示
阉割版modbus 协议,只支持03功能码(读)和10功能码(写)。上图的右下角
举例了,只要发送 01 03 00 01 00 02 95 CB,控制就会回传 01 03 04 00 00 0A 0B BD 54。
返回的 00 00 0A 0B 就是重量,按下下面的公式换算就行了。
按照我以前RS232连扫码枪的一贯做法,是直接设置结束符,然后选无顺序协议的
很遗憾这里不能这样干,因为发送 01 03 00 01 00 02 95 CB 可以是固定的,返回的
01 03 04 00 00 0A 0B BD 54 的BD 54是不固定的,因为它的后两个符号是CRC校验码,不是固定的,没办法设置一个固定的结束符使用无顺序协议接收,所以这里要用串口通讯模块的通信协议支持功能。
首先PLC串口的参数设置如下:
万能不变的默认波特率 9600(一般设备都默认9600), 无校验 ,数据为8,停止1 (一般简称N81 ),。
通信协议设置那里就是选择“通信协议”,设置好通信协议号调用就行了。
如下图所示打开通信协议支持工具
点击新建一个文件
添加1号协议,如下所示,03就读取的功能码
右键更改为可编辑,这里是套用它的结构,可以修改自己需要的内容。
按照下图所示
D100 是要写入01 (读取的是1号从站),03是功能码,D101 要写入0001
D103要写入0002 ,再加校验码(系统自动算出添加),意思是读取1号从站的001开始的两个(0002)字节数据。
这里就要偷懒的了,我只要读取一个站数据,还是读固定地址的数据,所以是不需要变量的,何必要通过写入D100,D101 ,D102转换呢,直接固定内容不香吗?
直接右键-数据类型更改
改成固定数据
如下,自己改成发送固定的01 03 00 01 00 02 +校验码(自动添加),省了编程的步骤。
三菱Q系列串口通信协议支持功能-mobus协议
发送了对应内容控制器就返回数据,下面看设置接收(1)
老套路!接收的数据中01 03 04 是固定的,只有表示重量的4个符号是需要设置存放地址的,设置存在D404 –D405
接收(2)是用不到了,随便设置个地址不报错就行。
设置完写入模块即可。
下面看PLC编程
直接间隔1S触发一次1号协议就行了, 具体指令应用可以查手册,不多讲了。
接收到的数据在D404和D405,另行编程转换就行了。
下面是动图
指示灯亮得很欢快啊,说明一直在发送接收数据
以上就是简单接收写串口模块的通讯协议支持功能,很方便吧。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.