




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 是可编程控制器定时溢出软元件 计数器 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 D123的地址 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的数据为 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 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个字节的元件 以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 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 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 x31 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 0000000002313030413130313032034339 02313130304330343132414634333431033134 5 SCI与三菱PLC串口通讯流程 一 设置变量写入变量 首地址 写入个数 校验码 发送的数据 接受数据 读取变量 首地址 读取个数 校验码 读取的数据 二 把操作PLC的指令赋值给变量新建一个脚本 把要操作PLC的命令赋值给发送的数据 三 发送赋值的变量给PLC1 新建一个串口算子设置发送数据的变量 设置发送数据格式 ASCII编码 字符串格式 2 配置串口参数波特率 9600停止位 1奇偶校验 偶数据位 7四 接受PLC响应的数据新建一个脚本 解析响应的数据 6 程序实现 一 读数据操作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 Rnum 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 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 判断接收的每位数据是否小于等于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 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 程序实现 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 数据个数Wa CustomVar Fx Waddr 2 toString 16 toUpperCase 首地址转换成十六进制字符if Wa length 2 首地址字符长度小于2时 在字符前面加0 Wa 0 Wa Wn CustomVar Fx Wnum 4 toString 16 toUpperCase 个数转换成十六进制字符 6 程序实现 if Wn length 2 个数字符长度小于2时 在字符前面加0 Wn 0 Wn Wv for i3 0 i3 CustomVar Fx Wnum i3 Wv Wv RealtoHex CustomVar Fx W i3 把要写入的数据转换成十六进制 a Wa Wn Wv n 0 for i 0 i a length i 把字符转换成ASCII码 把ASCII转换成十进制数值 if parseInt a substr i 1 16 9 temp i parseInt a substr i 1 16 48 0 9加48 A F加55 0的ASCII码30H 30H转换十进制为48 A的ASCII码41H 41H转换十进制为55 6 程序实现 else temp i parseInt a substr i 1 16 55 n n temp i 数据值累加 a1 49 49 48 3 n toString 16 计算和校验 并转换成十六进制字符串CustomVar Fx Wchk a1 substr a1 length 2 2 toUpperCase 取后两位值CustomVar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 西医临床考试细分知识试题及答案
- 预算编制试题及答案解读
- 高效备考图书管理员试题及答案
- 计算机二级考试知识与技巧的平衡学习方式试题及答案
- 跳水闯关考试题及答案解析
- 高效解题2025年初级会计师试题及答案
- 财务合同风险分析与管理试题及答案
- 药品广告审查标准考试试题及答案
- 解决问题的护士资格证复习试题及答案
- 重点关注2025年临床执业医师考试试题及答案
- 2025年宣传岗笔试题库及答案
- 2024年漳州市医院招聘考试真题
- 售后技术服务年终总结
- 磷酸铁及磷酸铁锂异物防控管理
- 2025火灾报警产品强制性产品认证实施细则
- 中考数学《数与式》专题训练(含答案)
- (新版)水利水电工程施工企业“三类人员”安全生产考核题库-(单选多选题库)
- 部编版小学二年级下册语文全册教案
- 2025年兴业银行股份有限公司招聘笔试参考题库含答案解析
- 七年级语文下册(统编版2024)-【新教材解读】义务教育教材内容解读课件
- 冷库工程施工组织设计方案
评论
0/150
提交评论