随笔 - 435  文章 - 0  评论 - 111  阅读 - 62万 

工作中用的比较多的是三菱的PLC的 Fx5U和Fx3U,它们有多种通信协议,我们学习时先从1种入手,再扩展到其他的。三菱的说明书几百页,我们要把说明书读薄,只选其中通信协议部分看就好了。而上位机一开始只需要了解读写一个字元/位元就可以了。

三菱FX-3U 计算机专用协议通信方式,其通讯命令字和通讯格式介绍如下:

命令字 注释

BR 以1点为单位,读出位元件的状态

WR 以16点为单位,读出位元件的状态,或以1字为单位,读出字元件的值

BW 以1点为单位,写入位元件的状态

WW 以16点为单位,写入位元件的状态,或以1字为单位,写入值到字元件

 

PC发送给PLC的通信命令格式

约定说明:ENQ为请求标志,ASCII值5

     ACK为正确标志,ASCII值6

     STX为请求标志,ASCII值2

     EXT为请求标志,ASCII值3

     表格中粗体字为需要求和效验的部分;
     和效验为每一项的ASCII值的总和转换成十六进制后,取其低两位;

     站号、PLC号、元件数量、和效验都是以十六进制表示;
                  等待延时为0-150毫秒,以十六进制0H-FH表示,如100ms为AH


1) 批量读出位元件—BR指令格式

例如:要读出站号为5的PLC的X40到X44共5点的状态值,延时100毫秒,

假设PLC中X40与X43为OFF,其余为ON,则指令数据如下:

 

只要将以上代码以字符串形式串口发送到PLC,就会有正确的回应信息,如下:

 

 

2) 批量读出字元件—WR指令格式

例如 读站号0的PLC的D10的字元值

 

 

 

3) 批量写入位元件—BW指令格式

...

4) 批量写入字元件—WW指令格式

例如 写入站号0的PLC的D10的字元值=11

 

 

5U则是用MELSEC通讯协议(简称MC协议)通信,

但MC协议的通讯格式有很多种:3E、3C、4E,4C帧格式, 个人感觉3C比4C好用,3C是ASCII文本格式,3E是二进制格式

 

posted on   Gu  阅读(3125)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
历史上的今天:
2018-12-13 微信小程序自动定位,通过百度地图根据经纬度获取该地点所在城市信息
点击右上角即可分享
微信分享提示