点击上方蓝字关注我们

【免费抽奖】电气人不能错过的PLC书籍与软件!

通信指令本身不难,难的是对通信的理解。在学习PLC通信指令之前,我曾尝试去看通信相关的课程,然后告诉自己:算了,不必勉强自己,学不会的始终学不会。

数据的传输方式有并行和串行两种,其中并行是指同一时刻可以传输多个bit位的信号,有多少个信号位就需要多少根信号线;而串是指同一时刻只能传输一个bit位的信号,只需要一根信号线,如下图所示。PLC与其他设备的通信就是以串行的方式进行的。

所以文章所谓的通信指令是基于串行的传输方式,这次先分享串行数据传送指令RS与校验码指令CCD,下次接着分享十六进制字符转ASCII码的交换指令ASCI与ASCII码转十六进制字符的交换指令HEX。

01数据传送指令RS

RS指令是PLC与外围设备进行数据传输的控制指令,从编程手册截图可以看到,RS指令不可用于32位,也没有脉冲执行型,它有4个操作数,源址 S· 和和终址 D· 只能是数据寄存器D,还有两个操作数n、m可以是常数K、H和寄存器D。RS指令的梯形图形式图下图所示。

源址S是所发送数据的字元件首址,D是需接收数据的字元件首址;而m是发送数据的个数,n是接收数据的个数,其中n、m的取值范围为0~4096且n+m≤8000。这里要注意的数是,S和D不能使用相同编号的数据寄存器,但m和n可以使用同一数据寄存器。在驱动条件成立时,RS指令告诉PLC做好准备,接下来将要发送m个以S为首址的数据,并接收n个以D为首址的数据。

例上图所示的执行指令RS D0 K5 D100 K10 ,X0置ON,寄存器D0~D5的开始做好发送数据的准备,而D100~D110也开始做好接收数据的准备。即RS指令执行时,数据并没有马上开始传输,而是处于待命状态。

RS指令的应用,会涉及到几个特殊软元件,即下图所示的D8120、M8161、M8122、M8123。所谓通信格式字,简单来说就是PLC与外围设备进行数据传输时所约定的数据格式,例如数据传输怎么开始、如何结束、波特率为多少(每秒传输bit位的个数)等。

所以,在应用RS指令进行通信前,应先确定通信格式字。这有点像打篮球,比赛时跟队友沟通用手势进行,什么手势进攻、什么手势挡拆、什么手势用什么战术等,这都得事先约定。

M8161的不同状态决定了RS指令对数据的处理方式:低8位模式或16位模式。所谓低8位,是指RS指令只对源址S和终址D的低8位数据进行传送和接收,而忽略高8位的数据。同理,所谓16位模式是指RS指令对源址S和终址D的16位数据均做发送和接收处理。例如PLC要发送数据:H01、H23、HAB、HCD,接收数据:H45、H67、H89。

(1)若M8161=ON,如下图所示,每个数据寄存器只有低8位用于保存所需的数据,而高8位为零,不做处理。

(2)若M8161=OFF,如下图所示,每个数据寄存器共有16位,均用于存放数据,与低8位模式相比,少用了一半的数据寄存器。具体用什么模式根据实际情况而定,一般是采用低8位的数据处理模式。

由M8161的功能和用途可以发现除RS指令外,CCD、ASCI、HEX指令对数据的处理模式也是由M8161的状态控制。也就是说,程序中,一旦M8161的状态被设定,RS、CCD、ASCI、HEX指令对数据的处理模式均相同。

特殊继电器M8122和M8123是数据发送或接受的标志继电器,它们的状态直接决定了数据是否传输。若把数据传输看成赛跑,则执行RS指令就相当于裁判喊:“预备!”,此时各选手做好蹲踞;M8122置ON,相当于裁判喊:“跑!”,选手们开始跑步,即数据开始传送,M8123也是类似的道理。

下图为RS指令应用的梯形图示例,在数据发送和接收之前,先确定好数据处理模式和写入通信格式字,如图中的H0C87为一种通信格式字。

将所需发送的数据先保存到D0~D9,然后将M8122置ON,开始发送数据,数据发送完毕后,继续接收数据并相继保存到PLC的D100~D109中,数据接收完毕后,M8123自动置ON,此时PLC将D100~D109所存的数据转存到D300~D309中,最后将M8123复位,为下一次数据接收作准备。

数据传送指令RS的理解并不简单,毕竟是通信,说到通信,我流了一地的辛酸泪。RS指令在平时用得不少,希望大家认真学习哦。

02校验码指令CCD

所谓校验,简单来说,就是判断数据传送时所传送的数据的正确性。而校验码就是校验的结果,不同的校验方式有着不同的校验结果。校验码指令CCD就是针对求和校验和异或校验而设计的,其编程手册截图如下图所示。

所谓求和校验,是指将参与校验的数据求和,将求和结果的低8位作为校验码。例如求数据H12、H23、H34、H45、H56的求和校验码,直接将这几个数据相加等于H104,取低8位为H04就是其求和校验码。

同理,异或校验,就是将参与校验的数据依次按位进行异或运算,最终结果即为异或校验码(列偶校验码)。如下图所示,求数据H12、H23、H34、H45、H56进行异或检验,先将H12与H23按位异或,结果为H31,然后将H31与H34按位异或……最终结果为H16,即异或检验码为H16。

从编程手册截图可得,CCD指令不可用于32位,有脉冲执行型和连续执行型两种,操作数有3个。其梯形图形式如下图所示,源址S为参与校验的数据存储字元件首址;终址D为求和校验码存储字元件地址,其D+1为存储列偶检验码的地址;n为参与校验数据的个数,取值范围为0~256。

当驱动条件成立时,对S所存的数据分别求解其求和校验码和列偶校验码,并存到终址D和D+1中。例如执行指令CCD D0 D100 K10,对D0~D9的数据求解其求和校验码和列偶校验码,并将求和校验码存到D100中,将列偶校验码存到D101中。

在上文中提到,特殊继电器M8161的状态也决定了CCD指令的数据处理模式。若M8161=ON,CCD指令为8位数据处理模式时,仅对首址为S的n个数据寄存器的低8位数据进行求和、异或,而为16位数据处理模式时,将首址为S的n个数据寄存器的高8位、低8位看成两部分,分别进行求和、异或。

例如执行指令CCD D0 D100 K3,其中(D0)=H0123,(D1)=H2345,(D2)=H3456。(1)若M8161=ON,对D0~D2的低8位进行校验,求和校验码为H23+H45+H56=HBE,列偶校验码为H30;(2)M8161=OFF,对D0~D3的16位进行校验,求和校验码为H23+H01+H45+H23+H56+H34=H16(结果为H116,取低8位),其中H01、H23、H34分别为D0D2的高8位,同理可得列偶校验码为H26。

求和校验码和异或校验码都比较常用,所以也很有必要理解其含义。

那么,这次的学习分享就到这里,共勉。

注:本文章内容都是基于三菱FX PLC 2N所写

选自《三菱FX系列PLC功能指令详解》第七章第70~73课时

(技成培训原创,作者:杨思慧,未经授权不得转载,违者必究!)

RECOMMEND延伸阅读小白如何学PLC?我的三菱FX PLC学习之数字电路基础学习计划丨西门子PLC从入门到精通学习计划丨三菱PLC从入门到精通三菱PLC与西门子所有PLC的学习方法,初学者必备点击“”立即领取128G学习包!

通过电脑给继电器发送指令_三菱FX PLC学习之通信指令(上)相关推荐

  1. 三菱plc pwm指令_三菱电机PLC学习:高速指令

    1.和输入输出有关的指令 (1)输入输出刷新指令REF  REF(P)指令的编号为FNC50.三菱FX系列plc采用集中输入输出的方式.如果需要最新的输入信息以及希望立即输出结果则必须使用该指令.如图 ...

  2. rt-thread怎么使用数码管_三菱FX PLC功能指令,怎么学?

    很多小伙伴问学完编程入门后又应该学习什么内容呢?我的回答是,学完三菱编程入门后应该学习三菱FX PLC功能指令,包括功能指令的预备知识.三菱FX系列PLC的编程元件.寻址方式等,以及三菱FX PLC的 ...

  3. 子程序入口参数是什么_三菱FX PLC | 什么是中断服务?没事多看几遍

    戳上方蓝字 "技成电工课堂" 关注我们哦! "前面我先是分享了PLC程序流程转移中的条件跳转CJ,然后紧接着进攻了子程序调用CALL和循环FOR,这次,我要向" ...

  4. for循环10000次花多长时间_我的三菱FX PLC学习之子程序调用与循环

    戳上方蓝字 "技成电工课堂" 关注我们哦! 上次,我们学习了程序流程转移中的条件跳转CJ,这次,我们接着向子程序调用CALL和FOR循环发起进攻吧! 显然,子程序调用CALL和FO ...

  5. 三菱5uplc伺服电机指令_三菱FX3U PLC如何控制松下伺服

    一.实现的功能及应用的场合 通过PLC的不同指令,发送两轴伺服电机所需要的速度与位置的频率和数量来实现电机的定位运行.JOG运行,适用于数控机床.印刷设备.包装设备.纺织设备.激光加工设备.机器人.自 ...

  6. PLC编程安卓版 兼容三菱FX PLC编程指令 软件在线仿真 硬件PLC工控板蓝牙与手机蓝牙在线下载程序 在线仿真

    1 APP功能描述 2 APP下载与安装注册 3 APP介面操作 3.1 主介面介绍 3.2 状态栏 3.3 工件区 3.4 工具栏 3.5 转换成上位机GX Works2文件 1 APP功能描述 F ...

  7. 串口调试助手读写三菱fx3u数据_C#读写三菱Fx PLC 使用Fx 串口协议 读写Fx3U设备

    本文将使用一个Github开源的组件库技术来读写三菱 FX PLC,使用的是基于串口的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地 ...

  8. 三菱 fx2n 通信 linux 代码,三菱FX2N PLC串行通讯指令(FNC 80 RS)

    三菱FX2N PLC串行通讯指令(FNC 80 RS) 串行通讯指令(FNC 80 RS) 1.指令格式:    [RS     D0     K8     D10    K8] 发送数据帧起始地址和 ...

  9. 三菱FX1N PLC 485与三菱变频器modbus通讯可直接拿来实用了,三菱FX PLC与三菱变频器通讯

    三菱FX1N PLC 485与三菱变频器modbus通讯可直接拿来实用了,三菱FX PLC与三菱变频器通讯 采用器件:三菱FX1N PLC,FX1N485BD板,1台三菱E740变频器,三菱FX2N ...

最新文章

  1. Linux系统巡检shell脚本
  2. JS性能--DOM编程之重排与重绘
  3. Eclipse的PyDev插件安装及解决安装后找不到的问题
  4. Bootstrap3 缩写词样式
  5. 换了路由器电脑都连不上网了_换了新路由器电脑连不上网
  6. K-means算法的学习笔记
  7. (转载)图文推荐给开发人员非常实用的站点
  8. 15款顶级开源人工智能工具推荐
  9. linux进程间命名管道,Linux进程间通信
  10. 将 Ps 的调色效果保存为预设文件
  11. 使用html制作一个网页
  12. NLP(五十二)抽取式词义消歧(WSD)
  13. ImageIO 本地读取,网络下载图片
  14. 数据库事务 ACID
  15. 开源软件新时代:55个经典开源Wind…
  16. 三菱FX5U传送指令
  17. git lfs 使用
  18. java EE的一些问题
  19. 蓝桥杯python组——猜生日
  20. vi、vim的使用 查找关键字命令(一文彻底搞懂)

热门文章

  1. matplotlib 笔记:设置x轴 y轴文字
  2. 论文笔记: Modeling Extreme Events in Time Series Prediction
  3. 增强学习(Reinforcement Learning and Control)
  4. map初始化_需要掌握的Go基础之map:文末附面试题一道
  5. LeetCode-双指针-88. 合并两个有序数组
  6. 服务端高并发分布式架构演进之路【转】
  7. 谈阿里核心业务监控平台SunFire的技术架构
  8. facade 模式和gateway模式的区别
  9. 从0到1,关于产品冷启动阶段。
  10. Anaconda 镜像使用帮助