PC与三菱PLC串口通讯.ppt

上传人:飞****9 文档编号:135603967 上传时间:2020-06-17 格式:PPT 页数:25 大小:379.50KB
返回 下载 相关 举报
PC与三菱PLC串口通讯.ppt_第1页
第1页 / 共25页
PC与三菱PLC串口通讯.ppt_第2页
第2页 / 共25页
PC与三菱PLC串口通讯.ppt_第3页
第3页 / 共25页
PC与三菱PLC串口通讯.ppt_第4页
第4页 / 共25页
PC与三菱PLC串口通讯.ppt_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《PC与三菱PLC串口通讯.ppt》由会员分享,可在线阅读,更多相关《PC与三菱PLC串口通讯.ppt(25页珍藏版)》请在金锄头文库上搜索。

1、PC与三菱PLC串口通讯实例 简介 PC与PLC之间的通讯 按硬件接口分类主要分为串口通讯和网口通讯 RS 232C RS 422A RS 485 UDP 串口通讯 TCP 网口通讯 目录 1 三菱PLC数据操作对象元件 1 三菱PLC操作元件分为位元件和字元件 位元件主要有 X Y M S T C 字元件主要有 D 2 元件说明 输入继电器 X 是可编程控制器从外部的输入开关接受信号的窗口 只能读不能写 输入寄存器必须由外部信号驱动 输出继电器 Y 是可编程控制器驱动外部负载的窗口 辅助继电器 M 是可编程控制器内部辅助继电器软元件 状态 S 是可编程控制器内部状态继电器软元件 定时器 T

2、是可编程控制器定时溢出软元件 计数器 C 是可编程控制器计数溢出软元件 数据寄存器 D 是可编程控制器保存数据的软元件 FX系列可编程控制器的数据寄存器是16位 最高位是正负位 组合2个寄存器可以处理32位 最高位是正负位 的数值 2 三菱PLC元件首地址 读取PLC主要内部元件地址如下 D address 2 1000H M address 2 0100H X address 0080H Y address 00A0H T address 00C0H C address 2 01C0H S address 3 注意 address为十进制数 例1 D0的地址为0 2 1000H算一算 1 D

3、123的地址 2 M40的地址 3 Y13的地址 1000H 123 2 1000H F6H 10F6H 0100H 40 2 0100H 50H 0150H 00A0H 13 00A0H DH 00ADH 3 PLC数据类型和储存格式 2 PLC数据储存格式整数 int型 三菱PLC普通数据为int型 32768 32767 如 PLC寄存器数据格式 0 1 32766 32767 32768 32769 65535实际数据 0 1 32766 32767 32768 32767 1读取PLC的数据为 34303030383030308000H 32768浮点数 real型32位 读取PLC

4、的数据为 32334239464333443DFCB923H转换成二进制 001111011111110010111001001000110 判断正负数 0为正数 1为负数 01111011 指数11111001011100100100011 数值 3 PLC数据类型储存格式 2 1 4321 3 PLC数据类型和储存格式 指数 01111011b 123d123 127 4PLC在储存数值时 第一位都为1 所以不保存在数据里 在分析数据时要加上1 数值 111111001011100100100011 1 1 2 4 1 1 2 5 1 1 2 5 1 1 2 5 1 1 2 5 1 1 2

5、 5 0 1 2 5 1 2 27 0 12343 举一反三1 把12 34转换成PLC写入的数据 2 把0 79转换成PLC写入的数据 4131373034353431 3730334434413346 4 PC与PLC串口通讯操作 一 对位元件和字元件状态读操作发送格式 命令格式 STXCMD0ADDLENEXTCHK解释 起始符读命令元件起始位个数停止符校验码数字代码格式 0 x020 x30 0 x03 0 x30是读操作指令 CMDD是读位元件或字元件的4位起始地址 高位先发 低位后发 以ASCII码的格式发送 LEN是一次读取位元件或字元件的字节个数 最多可以读取0 xff个字节的

6、元件 以ASCII码的格式发送 CHK是两位和校验 将CMD0 ADD LEN EXT三项进行和累计 将和累计的最低位两位转化为ASCII 4 PC与PLC串口通讯操作 响应格式 响应信息格式 STXDATAETXCHK解释 起始符返回的数据停止符校验码数字代码格式 0 x02 0 x03 DATA为我们前面读取的数据 读取DATA数据时遵循低位先发 高位后发的原则 所以我们解析数据的时候需要注意高低位的转换 CHK位DATA EXT两项和累计的最后两位转化为ASCII码 例2 读取D2寄存器的数据读取码 0 x30D2的寄存器地址 2 2 1000H 1004H 0 x31 0 x30 0

7、x30 0 x34 个数 0 x30 0 x34校验码 30 31 30 30 34 30 34 03 15C 0 x35 0 x43 发送数据 0 x020 x300 x310 x300 x300 x340 x300 x340 x030 x350 x43响应 0 x020 x320 x340 x420 x390 x460 x430 x330 x440 x030 x450 x340 1234练练手 1 读取D123寄存器的数据 2 读取Y13的值 0230313046363034033734 17 100230303041443031033739返回 02303203363500001000

8、4 PC与PLC串口通讯操作 二 对位元件和字元件状态写操作发送格式 命令格式 STXCMD1ADDLENDATAEXTCHK解释 起始符写命令元件起始地址位数写入的数据停止符校验码数字代码 0 x020 x31 0 x03 0 x31是写操作指令 DATA是待写入PLC缓冲区的数据 低位先发 高位后发 以ASCII码的形似发送 其他的和读指令一样 响应格式 返回06 表示写入成功 返回15 表示写入失败 例3 把12 23写入D10寄存器里写命令 0 x31首地址 10 2 1000H 1014H 0 x31 0 x30 0 x31 0 x34 个数 0 x30 0 x34写入的数据 0 x

9、31 0 x32 0 x41 0 x46 0 x34 0 x33 0 x34 0 x31 4 PC与PLC串口通讯操作 校验码 31 31 30 31 34 30 34 31 32 41 46 34 33 34 31 03 314H 0 x31 0 x34 发送数据 0 x020 x310 x310 x300 x310 x340 x300 x340 x310 x320 x410 x460 x340 x330 x340 x310 x030 x310 x34如果响应反馈是06表示写入成功 否则写入失败 练练手 1 把1 2写入寄存器D6的的数据 2 把1写入Y1寄存器中 Y1 0000000002

10、313030413130313032034339 02313130304330343132414634333431033134 5 SCI与三菱PLC串口通讯流程 一 设置变量写入变量 首地址 写入个数 校验码 发送的数据 接受数据 读取变量 首地址 读取个数 校验码 读取的数据 二 把操作PLC的指令赋值给变量新建一个脚本 把要操作PLC的命令赋值给发送的数据 三 发送赋值的变量给PLC1 新建一个串口算子设置发送数据的变量 设置发送数据格式 ASCII编码 字符串格式 2 配置串口参数波特率 9600停止位 1奇偶校验 偶数据位 7四 接受PLC响应的数据新建一个脚本 解析响应的数据 6

11、程序实现 一 读数据操作1 读取设置CustomVar Fx Raddr 0 读取首地址小于255CustomVar Fx Rnum 2 读取个数小于162 转换成发送数据格式vars 0201003 02和03为十六进制 ASCII 02H Ctrl B 03H Ctrl PauseBreak vartemp newArray 创建一个数组temp length 4 设置数组长度Ra CustomVar Fx Raddr 2 toString 16 toUpperCase 首地址转换成十六进制字符串if Ra length 2 少于两位补0 Ra 0 Ra Rn CustomVar Fx R

12、num 4 toString 16 toUpperCase 个数转换成十六进制字符串if Rn length 2 少于两位补0 Rn 0 Rn a Ra Rn 6 程序实现 for i 0 i 4 i if parseInt a substr i 1 16 9 0 9加48 A F加55 0的ASCII码30H 30H转换十进制为48 A的ASCII码41H 41H转换十进制为55 temp i parseInt a substr i 1 16 48 else temp i parseInt a substr i 1 16 55 a 48 49 48 3 temp 0 temp 1 temp

13、2 temp 3 toString 16 数据值累加并转换成十六进制字符CustomVar Fx Rchk a substr a length 2 2 toUpperCase 取后两位作为和校验CustomVar Fx RS s substr 0 4 Ra Rn s substr 4 1 CustomVar Fx Rchk 发送的字符串 6 程序实现 3 转换响应返回的数据vartemp newArray temp length CustomVar Fx Rnum 8 for i 0 i CustomVar Fx Rnum 8 i if 串口 2 DataArray 1 i 57 判断接收的每

14、位数据是否小于等于57 temp i 串口 2 DataArray i 1 0 x30 toString 16 toUpperCase 把接收的数据转换成十六 进制字符串else temp i 串口 2 DataArray i 1 0 x30 0 x7 toString 16 toUpperCase for i2 0 i2 CustomVar Fx Rnum i2 a temp 2 i2 8 temp 3 i2 8 temp 0 i2 8 temp 1 i2 8 temp 6 i2 8 temp 7 i2 8 temp 4 i2 8 temp 5 i2 8 把字符串累加CustomVar Fx

15、 R i2 HextoReal a 调用函数 并赋值赋值 6 程序实现 把取出的十六进制转换成实属函数functionHextoReal h vari3 i4 i5 i6 b b1 s e m m1 h h substr 4 4 h substr 0 4 低四位先发 高四位后发b for i3 0 i3 8 i3 把十六进制转换成实数 temp i3 parseInt h substr i3 1 16 for i4 0 i4 8 i4 把实数转换成二进制 b1 temp i4 toString 2 for i5 b1 length i5 4 i5 b1 0 b1 补码 b b b1 6 程序实

16、现 s b substr 0 1 正负数值e parseInt b substr 1 8 2 127 计算指数m 1 b substr 9 获取数值m1 0 for i6 0 i6 24 i6 把二进制数值转换成实数 m1 m1 m substr i6 1 Math pow 2 i6 Math pow 2 e 把二进制转换成实数 if s 1 判断正负数 m1 m1 CustomVar Read D1 m1 return m1 6 程序实现 二 写数据操作1 变量赋值CustomVar Fx Waddr 0 写入首地址小于255CustomVar Fx Wnum 2 写入个数小于16CustomVar Fx W 0 12 34 写入的数据0表示第一个数据 1表示第二个数据CustomVar Fx W 1 0 12342 转换成发送数据格式vars 0211003 02和03为02H的ASCII 02H Ctrl B 03H Ctrl PauseBreak vartemp newArray 创建一个数组temp length 4 8 CustomVar Fx Wnum 首地址 个数 8

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号