说明:

1、本文档注释说明了三菱 PLC 用 RS 进行ASCII 通讯的一个案例

2、本实例使用PLC为为三菱 Fx-3G系列,变频器为三菱通用变频器 FR-D700 系列

3、本实例内容原创,转载注明出处后,可随意分享使用

先展示一下代码,然后分析代码,依次详细讲解

RS指令解释

RS D10 D50 D100 K20

D10 为发送数据的起始地址,D10后续的连续地址依次为 D11、D12........

D50 表示发送的数据个数,D50的值为12,因此一共发送12个字的数据,即发送 D10~D21中存储的数据个数

D100 表示通讯接收变频器的数据起始地址

K20 表示 接收数据的地址数位20个字,即接收数据存储于 D100~D119 中

ASCI指令解释

ASCI D141 D16 K4

将D141参数转换成4个字的ASCII码存入到 D16,D17,D18,D19 中

例如 D141 的值为 1234,则 D16~D19的值如下表所示

通讯发送了哪些数据?

PLC与变频器的通讯就像人与人之间对话一样,是一个信息交互的过程,就像发电报一样,

报头,即一条信息,一条报文的标题,意思告诉对方信息开始发送了,接下来是报文信息

报文,是要表达的实际数据内容

报尾,一般用来校验发送的报文数据是否正确,用来告诉对方,我发送的数据已经完成了。

例如程序中 M140 = ON ,D141=1234时,PLC 发送了 D10~D21中存储的数据,一共12个字

P0子程序中D20与D21的解释

D50=12时候,则D51=9,即发送的数据个数去掉1个字的报文、再去掉2个字的报尾巴,剩下就是报文的字个数为9位

通过执行 for 指令循环 依次对 D11Z0 地址进行累加,值存储于 D52中

Z0 是个变量,可以视为当前循环次数的指针,从1依次递增到9,所以 D11Z0 最终指向D11-D19的数据地址

下面进行for循环的演示:

比如 D52初始值为 0

第1次循环开始,Z0=0,则 D11Z0 代表的地址值即 D11的值,D52 = D11,循环结束Z0自增1,Z0的值为2

第2次循环开始,Z0=1,则 D11Z0 表示D12中的值,D52 =  D11+D12,Z0=3

。。。

第9次循环开始,Z0=8,则 D11Z0 表示 D19中的值,D52 = D11+D12+。。。+D19,Z0=9

由上可以看出,D52最终的值在for循环结束后即D11-D19的值之和,我们称之为和校验,

校验用来告诉信息接收方进行报文的数据验证信息,如果报文在通讯过程中受干扰或丢失,则校验和便会出错

循环结束后,Z0的值为9,此时 D11Z0 表示 D20 中的值

因此 ASCII D52 D11Z0 K2 此时可以理解为  ASCII D52 D20 K2,

这个for循环的累加过程 数学表示如下 :

(先写到这,如过有疑问,欢迎留言,再解答)

三菱plcascll转换16进制_关于三菱PLC与变频器ASCII通讯的讲解相关推荐

  1. 三菱plcascll转换16进制_三菱FX系列PLC的SER指令使用方法

    (1)三菱PLCFX系列的八进制数据传送指令 八进制数据传送指令(D)PRUN(P)(FNC81)是用于八进制数的传送.当X10为ON时,将X0-X17内容送至M0-M7和M10-M17(因为X为八进 ...

  2. 三菱plcascll转换16进制_十六进制转换为ascii码

    //函 数 名:CharToHex() //功能描述:把ASCII字符转换为16进制 //函数说明: //调用函数: //全局变量: //输 入:ASCII字符 //返 回:16进制 /**funct ...

  3. 三菱plcascll转换16进制_S7-200PLC ASCII码与十六进制数之间的转换指令及其使用

    摘要:ASCII码与十六进制数之间的转换指令指令格式和功能如表1所示.表1 ASCII码与十六进制数之间转换指令的格式和功能LADSTLATH IN,OUT,LENHTA IN,OUT,LEN操作数及 ...

  4. C# 数字转16进制和字符串转换16进制

    数字转换16进制.前提是你输入的必须是数字,而不是别的东西. private string StringToHexString(string s)//数字转换16进制{long Num = Conve ...

  5. JS 字符串转换16进制

    1.字符串转换UTF8字节 function strToUtf8Bytes(str) {const utf8 = [];for (let ii = 0; ii < str.length; ii+ ...

  6. java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别

    在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...

  7. 【蓝桥杯】python进制转换16进制转8进制。16进制转10进制。10进制转16进制。

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 样例输入 2 39 123ABC 样例输出 71 4435274 n = int(input()) #输入一个正整数n,表示n个十六进制正整 ...

  8. shell 中转换16进制10进制

    2012年10月10日 17:28:55 帝都码农 阅读数 12150 标签: shell 更多 个人分类: shell 一.16进制转换成10进制 printf %d 0xF 15 或者 echo ...

  9. 使用 Shell 运算进行进制转换 16进制转10进制

    使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数 ...

最新文章

  1. mysql在mac下的data目录_Mysql在mac中目录结构用法命令
  2. 数字n,按字典排序,找出第k小的数字
  3. Excel 打开csv显示在一个单元格
  4. 分隔线演练-利用参数增加分隔线的灵活度
  5. iOS执行时工具-cycript
  6. 什么? 搞不定redis分布式锁?
  7. 【java】RMI教程:入门与编译方法 远程
  8. WiFi抓包图形化版本
  9. 百度云盘不限速下载大文件(2021-11亲测有效)
  10. gradle下载慢的问题
  11. 计算机上怎么带源地址ping,如何带源地址ping
  12. 怎么制作升温曲线图_如何在EXcel做体温曲线图
  13. 计算机二级考过律,计算机二级考试考完后的这些事情你知道吗?
  14. 【爬虫】爬取个人随手记账户
  15. Excel教程之什么是好的仪表板工具
  16. 安卓九宫格上传图片(微信朋友圈,QQ动态)小demo
  17. Unity学习记录:制作双屏垃圾分类小游戏
  18. 宇宙精密调治的再思《基督教与科学》第二十三课
  19. 计算机科学发展有关的事,计算机科学前沿热点及发展趋势 计算机前沿技术论文.doc...
  20. 3000字干货!如何做好一个BI项目的规划和需求定义?

热门文章

  1. 跳频扩频通信系统的设计及simulink仿真
  2. 山东500分学计算机,2017山东500分左右的理科大学
  3. 开源html5小游戏6,html5简易小游戏 - strip_liu的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. 关于高性能服务器底层网络通信模块的设计方法
  5. 让你眼前一亮的算法优化技巧总结!!!
  6. linux调整屏幕位置,怎么消除linux下的屏幕偏移现象和调整屏幕刷新率?
  7. svr代码matlab,matlab解决svr代码.docx
  8. 日语常用口语(日常总结)
  9. 读书笔记:微积分的历程-从牛顿到勒贝格
  10. 如何从外贸B2B平台中开发出更多客户