单片机与三菱PLC无协议串行通讯的实现.doc_第1页
单片机与三菱PLC无协议串行通讯的实现.doc_第2页
单片机与三菱PLC无协议串行通讯的实现.doc_第3页
单片机与三菱PLC无协议串行通讯的实现.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机与三菱PLC无协议串行通讯的实现田书峰,李欣(中国海洋大学电子工程系,青岛 266071)摘要:介绍了三菱FX2N系列PLC在串行通讯技术中使用无协议数据传输的指令格式,以及单片机与其通讯的软硬件实现方法。关键词:PLC RS485接口 无协议数据传输 打码机控制器 中图分类号:TP368 文献标识码:B一、引言可编程控制器PLC(Programmable Logic Controller) 具有可靠性高、I/O接口模块丰富、模块化结构等特点,广泛应用于各种恶劣的工业环境中。三菱FX2N系列PLC是国内广泛采用的一种小型PLC,在其内部有一个特殊功能寄存器D8120,PLC可以根据其中的内容,按照一定的协议实现与计算机的通讯,但必须事先对PLC编程写入D8120。在打码机控制器的开发项目中,控制器控制步进电机实现对软包装袋进行打码。其中,包装袋长度、打码位置及字轮、墨轮等八路温度设置均通过与PLC配套的触摸屏实现,设定值送至PLC指定存储区;单片机根据从PLC中读到的设定值控制步进电机的动作及八路温度输出;单片机采集的八路温度实际值及对他们的加热控制状态要送至PLC,转而显示在触摸屏上。在用户原有的系统中,对触摸屏及PLC端口的控制程序已固化于PLC中,不可再对程序进行增改,因而不能对D8120进行设置。在不改变PLC原有程序结构的前提下,通过无协议的串行通讯圆满地解决了单片机与PLC的数据交换问题。二、FX2N-485-BD通信板及其接线介绍FX2N-485-BD通信板采用的是422电气接口标准。连接到RS485的端子有RDA、RDB、SDA、SDB、SG(接地端),另外,SD LED和RD LED分别为PLC发送和接收时高速闪烁的指示LED。用于RS485的通信板FX2N-485-BD可连接到FX2N系列可编程控制器的基单元,即接到一个可与手持编程器通讯的9线插座上,可用于下述应用中。1) 使用无协议的数据传送。使用无协议,通过RS485(422)转换器,可在各种带有RS232C单元的设备之间进行数据通信,如个人电脑,条形码阅读机和打印机。2) 使用专用协议的数据传送。使用专用协议,可在1:N基础上通过RS485(422)进行数据传输。3) 使用并行连接的数据传输。通过FX2N可编程控制器,可在1:1基础上对100个辅助继电器和10个数据寄存器进行数据传输。4) 使用N:N网络的数据传输。可在N:N基础上进行数据传输。PLC通过FX2N-485-BD通信板与单片机实现半双工通信的接线方法,如下图所示。这里值得一提的是在RDA和SDA之间接入的330欧姆端子电阻。FX2N-485-BD通信板采用的是422电气接口标准,要使之与单片机实现485通信,需要将RDA和SDA同时与MAX487的A端相连,但在实际使用中发现,RDB和SDB之间电平几乎相同,但RDA和SDA之间的电平相差4V以上。485总线上传送的是差模信号,如果将RDA和SDA直接相连,无法进行任何一个方向的通信。在RDA和SDA之间接入的330欧姆端子电阻,就可圆满解决问题。二、PLC 串行接口无协议通信数据传送的格式FX系列的PLC控制器,采用的是422电气接口标准,与单片机通信时采用的格式是: 1)异步半双工串行通讯;2)波特率:9600bps;3)奇偶校验:偶校验;4)帧校验:累加方式(和校验);5)字符形式:ASCII码。每个ASCII码的最高位在发送时被用作该字符的奇偶校验位,即在被发送的一个字节中,只有b0-b6表示实际发送的数据,b7是奇偶校验位。用于异步通信时,发送一个字节的格式如下:起始位停止位奇偶位 b0b1b2b3b4b5b6 单片机与PLC按主从方式进行通讯,单片机可向PLC发通讯请求信号,在收到PLC发回的响应信号后,开始数据通讯。通讯时,若干个字符组成一个字符信息帧,其帧格式如下:STXCMD字符1字符2 字符NETX校验和高位校验和低位 校验和累加范围 其中字符的含义分别为: ENQ 05H 主机通讯请求STX 02H 信息帧起始标志ETX 03H 信息帧结束标志CMD为单片机向PLC发送的命令字,以此来确定二者之间传送数据的含义,命令字有以下四种:“0” (30H) 读PLC命令 “7” (37H) 置位命令“1” (31H) 写PLC命令 “8” (38H) 清零命令通讯时,发送帧中的每个字符都要进行偶校验,从CMD开始到ETX结束的所有ASCII字符值累加在一起构成一个校验和,如果校验和超过两位,取低两位。然后分别将低两位数值转换成对应的ASCII码值,在ETX后发送,高位在前,低位在后。下面分别介绍对PLC中按字(D)和按位(M)进行存取的数据格式。1对字存储区的操作1) 地址算法如下:读写PLC时,要将数据送入指定存储区,或从指定存储区取出数据。地址address=address*2+1000H,再将结果中每位16进制地址值转换成ASCII码。例如要从PLC中地址为D100开始的字存储区存取数据,则D100=64H,address=64H*2+1000H=10C8H;每位地址对应的ASCII码为:31H,30H,43H,38H。2) 单片机向PLC中写入数据时,先发送“写”命令,其帧格式如下:STXCMD字起始地址字节个数第1个字第N个字ETX校验和02H31H163162161160161160 16116016316216116016316203H161160“写”命令的帧数据由STX开头,接下来是命令字CMD。数据写入PLC的起始地址由四个ASCII码组成,转换方法如前所述,按照从高到低的顺序排列。字节个数等于写入PLC字单元个数的2倍,由两个ASCII码组成。写入PLC字的内容由4个ASCII码组成,低两位在前,高两位在后。例如向D100开始的两个存储区中写入1234H和0ABCH,则写命令对应的帧格式为:STXCMD字起始地址字节个数第1个字第2个字ETX校验和02H31H31H30H41H38H30H34H 33H34H31H32H42H43H30H41H03H33H32H校验和的计算方法为31H+31H+30H+41H+38H+30H+34H+33H+34H+31H+32H+42H+43H+30H+41H+03H=332H,只取校验和的低两位32H,将每位转换成ASCII码为33H,32H。3) 单片机从PLC中读出数据时,先发送“读”命令,其帧格式如下:STXCMD字起始地址字节个数ETX校验和02H30H163162161160161160 03H161160校验和累加范围 各部分的数据格式如图,不再赘述。4) PLC的应答PLC收到单片机的读写命令帧时,将收到的从CMD开始,到ETX结束之间的所有ASCII字符去除校验位后进行累加,从而形成一个校验和,然后与单片机发过来的校验和进行对比,如果二者相同,则认为传输正确,否则错误。传输错误时,PLC向单片机返回NAK(15H)。传输正确时,当单片机发送的是“写”命令帧,PLC返回ACK(06H);当单片机发送的是“读”命令帧,PLC根据读命令要求,返回从指定地址开始的N个内部字数据。PLC返回数据的帧格式是:STX第1个字第2个字第N个字ETX校验和02H16116016316216116016316216116016316203H161160 校验和累加范围 对于返回的每一个字数据,PLC也是将其拆成4个ASCII码发送,161代表字数据的4-7位对应的ASCII码,160代表字数据的0-3位对应的ASCII码,163代表字数据的12-15位对应的ASCII码,162代表8-11位对应的ASCII码。2对位(M)存储区的操作单片机可以对PLC中指定地址的位存储区中的某一位单独进行操作,对其进行强制置位或清零操作。STXCMD位地址AddressETX校验和02H37H16316216116003H161160进行强制置位操作时,单片机发送的帧格式为:STXCMD位地址AddressETX校验和02H38H16316216116003H161160进行强制清零位操作时,单片机发送的帧格式为: 位地址计算公式:Address=Address/8+100H。PLC接收正确时,返回ACK(06H);接收错误时,返回NAK(15H)。三、系统设计Err-write=0data=data & 0x7fdata=STX?data=ACK?0F的ASCII?data=ETX?Err-write=1写PLC的应答?第二个校验码?已收到ETX?保存并计算校验和校验正确?Err_read=0Err-read=1和校验YYNYNNNNYNYNYNYY清校验和中断返回中断入口以下两图是发送读/写命令帧的程序流程图和接收PLC数据的中断程序流程图。每个ASCII字符在发送时都要进行偶校验。发送方将由发送数据计算得来的校验和在ETX后发送出去,接收方将接收到的数据去掉校验位后累加也得到一个校验和,然后与发送方的校验和比较,以此确定通讯正确与否。发STX发CMD发地址(4个ASCII)清校验和发字节数写PLC?发数据发ETX发校验和YN在与PLC在通讯过程中,单片机作为主机,PLC作为从机。单片机先向PLC发送读/写命令帧,PLC接收后做出相应反应。单片机异步通讯口RXD和TXD直接与487相连,发送时采用查询方式,接收时采用中断方式。在打码机控制器系统中,由AT89S52单片机做主控部件,通过4051选择8路K型热电偶输入信号,温度转换选用MAX6675,6675内部带冷端补偿,测温误差0.25,通过SPI总线传送转换的温度值。外部包装袋每转一袋时都有一个触发信号,单片机根据它计算出运行速度,并结合打码位置的设定值控制步进电机的运行。系统的结构图如下所示: AT89S52八路温控信号L297L298驱动步进电机MAX487PLC报警信号MAX4051MAX6675八路热电偶SPI速度检测停车信号四、结束语经实践证明,该通讯系统通讯正常稳定,传输可靠,抗干扰能力强,达到了预期的效果。该通讯系统已应用于青岛某厂的包装机系统中,且以产品的形式面向社会,并取得了良好的经济效益和社会效益。参考文献1MITSUBISHI, MITSUBISHI PROGRAMMABLE CONTROLLERS USERS MANUAL-FX COMMUNICATION, March 2000.2/ 中华工控网.3 梁合庆 等,从C到嵌入式C语言编程入门.实用.深入,北京航空航天大学出版社,2000. (收稿日期:2004-10-20)作者简介:田书峰(1978- ),男,汉族,山东齐河人,中国海洋大学硕士研究生,研究方向:嵌入式系统。Tian Shufeng(1978- ),Male,Han,Qihe of Shandong,Master of Ocean University of China, Research Field:Embedded Systems李欣(1959-),男,汉族,教授,研究方向:嵌入式系统。Li Xin(1959-),Male,Han,Professor, Research Field:Embedded Systems An Approach to the Implementation of No Protocol Serial CommunicationBetween Single-Chip and MITSUBISHI PLC Tian Shufeng Li Xin(Department of Electronic Engineering, Ocean University of China, Qingdao 266071,China)Abstract This paper presents an approach to the implementation of the serial communication between single-chip and MITSUBISHI PLC. In this approach, No protocol communication is used and the FX2N-485-BD communication board is connected to the PLC. This paper describes the format of these instructions in detai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论