三菱FX系列PLC编程口通讯协议实例

一、协议介绍
通过编程口通讯协议,计算机可以通过串口或USB接口向PLC读写数据,以及置位或复位软元件,但PLC不能主动向计算机发送信息。具体可操作的软元件有:X/Y/M/S/T/C/D。
由于只需要PLC主机和一根编程线缆即可简单通讯,无需另外购置如232-BD等通讯板,因此编程口通讯实际上非常实用。可惜的是,三菱的官方手册《FX通讯用户手册》却根本没有介绍这个通讯协议,网络上能找到的资料也很少。仅找到的一篇如下,其中也有很多语焉不详的地方,埋了不少坑。本文通过实际操作,简单总结一下该协议的使用方法和注意点。
链接: 三菱PLC编程口协议.
二、通讯设置
必须设置为:波特率9600,偶校验,7位数据位。否则无法通讯。
三、
读写操作时数据的基本格式:

注意:
通讯协议中的所有字符是用它们的十六进制ASCII码表示。如果有十进制数据,要先转化为十六进制数,再把十六进制数的每个字符用它相应的十六进制ASCII码表示。以下有详解。
参数详解:
STX: ASCII码,含义为Start of Text,十六进制代码为02H;
CMD:读操作时为0,即十六进制代码30H;写操作时为1,即十六进制代码31H;
ADDR:要操作的软元件的起始地址,查表可得,如下。注意是起始地址,例如要查询D0、D11寄存器的数据,写入D0的地址即可。ADDR为4个十六进制ASCII码。如D0查表地址为1000,每个字符均用十六进制ASCII码表示,即为:31 30 30 30。


NUM:字节数,用两个十六进制ASCII码表示,取值范围为01H-40H。这个数据是比较tricky的地方,一定要注意。理论上它是指“要操作的所有软元件对应的字节数”,比如:
要读D0中的数据,因为D软元件是用2个字节表示的,则NUM为02,十六进制ASCII码为 30 32;
要读D0、D1两个D软元件中的数据,则NUM为04,十六进制ASCII码为 30 34;
如果是读Y0-Y7这8个位软元件的状态,因为8个位为一个字节,所以NUM为01,十六进制ASCII码为 30 31;
如果是写数据,比如写十六制数122F到D0中,则NUM一样为02,写数据到D0、D1中,则NUM为04。注意:
这里NUM和要写的数据大小或是几位数无关。 比如写十进制1(十六进制0001)或写十进制65535(十六进制FFFF)到D0,NUM都是02;
写的数据是十六进制ASCII码,不能直接写十进制数;
规定写数据时NUM必须为偶数(读的时候NUM为奇数或偶数均可),所以就有例外情况:如果是写数据到Y0-Y7中,NUM数不是01,而是02。
数据DATA:读操作时无此项。写操作时该值必须以4个字符为一组,且低位2个在前,高位2个在后。比如:要写十进制10到D0中,10的十六制表示为A,要4个字符表示所以前面补0为000A;又要求低位在前高位在后,则表示为0A00,把每个字符都用十六进制ASCII码表示,即为:30 41 30 30。
ETX:ASCII码,含义为End of Text,十六进制代码为03H;
累加和SUM: SUM = CMD + ADDR + NUM + DATA1+DATA2+…+ETX,注意不包括开始字符STX. 结果超过两位数取后两位,低于两位前面补0. 注意十六进制数的累加计算方法:逢16进1.比如:35+38+45,先个位相加:5+ 8+5=18>16,进1位剩2,2即是结果的个位数;十位相加:3+3+4+1(进位)=11,十六进制表示为B,所以相加结果就是B2。再把这两个字符用十六进制ASCII码表示即为:42 32 .

四、举例
1、计算机要读PLC的D0中的值:STX为02,CMD为30,ADDR为1000即31 30 30 30,NUM为02即 30 32,ETX为03,SUM为30+31+30+30+30+30+32+03=156,取后两位56即为35 36,所以计算机向PLC发送的数据为:02 30 31 30 30 30 30 32 03 35 36
2、计算机要写十进制4660 到PLC的D0,十进制22136到D1 :STX为02,CMD为31,ADDR为1000即31 30 30 30,NUM为04即 30 34,十进制4660转为十六进制为1234,换位后即:33 34 31 32,22136转为十六进制为5678,换位后即:37 38 35 36,ETX为03,SUM=31+31+30+30+30+30+34+33+34+31+32+37+38+35+36+03=2FD,取后两位FD即为 46 44,所以计算机向PLC发送的数据为:02 31 31 30 30 30 30 34 33 34 31 32 37 38 35 36 03 46 44
五、实测结果

另外还有置位和复位指令,格式相对简单些,下次再介绍。实际同样也可以通过上述读写指令实现。以上指令在FX2N下实测通过。第一次写文,如有错误,欢迎指正;如有疑问,欢迎留言。

三菱FX系列PLC编程口通讯协议实例相关推荐

  1. 三菱FX系列PLC编程口通信协议总览

    该协议实际上适用于PLC编程端口以及FX-232AW模块的通信 通讯格式       命令(CMD)   命令码    目标设备  DEVICE READ  CMD    "0"  ...

  2. 三菱FX 系列PLC 编程通信协议总览

    三菱FX 系列PLC 编程口通信协议总览 该协议实际上适用于PLC 编程端口以及 FX-232AW 模块的通信 通讯格式 命令 命令码 目标设备 DEVICE READ CMD "0&quo ...

  3. 三菱plc与计算机无协议通讯,三菱FX系列PLC与计算机无协议通讯.doc

    三菱FX系列PLC与计算机无协议通讯 一.FX系列与计算机通信所用到的命令码: 命令命令码目标设备元件读取CMD??0X,Y,M,S,T,C,D元件写入CMD???1X,Y,M,S,T,C,D强迫ON ...

  4. 三菱plc与计算机无协议通讯,三菱FX系列PLC与计算机无协议通讯

    资 源 简 介 本文主要通过介绍PLC通讯的意义和三菱FX系列PLC的四种通讯方式,并重点介绍FX系列PLC与计算机无协议通讯,主要从无协议通讯的硬件.配线.数据寄存器设置.PLC与计算机无协议通讯的 ...

  5. 三菱FX系列plc编程软件SWOPC-FXGP/WIN-C中文版下载

    SWOPC-FXGP/WIN-C 由本站工控资料分享专业户提供 三菱编程软件SWOPC-FXGP/WIN-C为一个可应用于三菱FX系列可编程控制器PLC的编程软件,可在windows下运行,在SWOP ...

  6. plc和pc串口通讯接线_三菱FX系列PLC与电脑之间串口RS232通讯协议简易解析

    本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线.电缆的 9 芯 D 形插头连接在计算机 ...

  7. PC与三菱FX系列PLC通信实例

    本文介绍的 PC 与三菱 FX 系列 PLC 通信,是通过 PLC 的编程口与 PC 机的串口进行的,采用 SC-09 编程电缆作为计算机与 PLC 通信的连线.电缆的 9 芯 D 形插头连接在计算机 ...

  8. iec60870-5-104通讯协议编程_三菱FX编程口通讯协议1——协议解读

    三菱PLC编程口通讯协议: 1.三菱PLC编程口通讯协议有四个命令,如下: 2.三菱FX系列PLC地址对应表: PLC_X Group Base AddRess=128: Const PLC_Y_Gr ...

  9. 三菱FX系列PLC串口通讯协议整理

    三菱FX系列PLC串口通讯协议整理 记录原因 项目要求 工具与资料 通讯格式 读寄存器 写寄存器 PLC回复数据 最后附几张上位机截图 记录原因 因项目需求,要写上位机与PLC进行通讯,查了诸多资料与 ...

  10. 三菱FX系列PLC以太网通讯

    三菱FX系列PLC以太网通讯 BCBet-FX用于三菱FX1N/1S/2N/3U/3G/3S等系列PLC,以及汇川.禾川.士林等品牌PLC. BCBet-FX 以太网模块采用三通设计,不占用PLC通讯 ...

最新文章

  1. 一个C语言小程序,有10几个命令和MSDOS一样哦:)
  2. java cssselector类_CSS 元素选择器
  3. java简述标识符和保留字区别_Java 基础语法 - 流年似水莫停留的个人页面 - OSCHINA - 中文开源技术交流社区...
  4. python 列表为空报错_对比几段代码,看看你是 Python 菜鸟还是老鸟
  5. linux的tomcat如何开机自启,linux tomcat开机自启
  6. Arcgis自带数据地址
  7. 上网本的最佳拍档——极通EWEBS
  8. Wamp安装教程(Windows Apache Mysql PHP集成安装环境)
  9. 运用supervisor管理thinkqueue 和swoole推送
  10. simpleCaptcha语音验证码实现及其扩展
  11. EBS提交取消请求、请求集程序fnd_request
  12. 前端开发者如何快速的把UI撸出来?(讽刺版)
  13. windows故障转移群集 文件服务器,为服务器故障转移群集中的 IIS Windows FTP - Windows Server | Microsoft Docs...
  14. js 禁用输入法(伪) / keydown返回false仍然可以输入的问题
  15. 上海气象局 mysql_根据中国气象局提供的API接口实现天气查询
  16. 机器人产业化给导电环行业带来的机遇
  17. 在linux服务器上用headless firefox打开中文网页,字体乱码问题
  18. 在网页中添加百度分享功能
  19. 验证集和测试集的区别?
  20. 一个博弈游戏,据说智商130才看的懂

热门文章

  1. Free MyBatis plugin下载安装及作用
  2. 诺威达刷机教程_诺威达方案导航一体机
  3. python汉化包放哪_python 汉化
  4. 板翅式换热器翅片表面传热与阻力特性性能分析
  5. 用plsql将excel导入oracle,使用工具 plsqldev将Excel导入Oracle数据库
  6. cad 打开硬件加速卡_CAD:“你的图纸缺少shx字体!”不知道该怎么办?不存在的!...
  7. 基于SSM框架的公交车调度管理系统
  8. JavaWeb公交调度系统的设计与实现
  9. 记录一下最近安装的Tongweb
  10. Android 蓝牙AVRCP 专题 (2)----- 耳机端设置绝对音量,手机端收到音量改变Register Notification