51单片机与三菱PLC通讯实例
- 格式:doc
- 大小:106.50 KB
- 文档页数:3
三菱PLC的通讯与编程案例三菱FX系列PLC作为三菱基本的PLC,它们之间的通讯有几种常用的方式,分别如下:CC-LINK,N:N网络连接,并联连接。
1.CC-LINK连接CC-LINK连接图如下:对应的PLC可为FX1N、FX1NC、FX2N、FX2NC、FX3U、FX3UC,因为在使用CC-LINK 通讯时要扩展CC-LINK模块,而FX1S没有扩展模块功能,故FX1S不能用于此通讯方式。
2)FX1N/FX2N/FX3U即可以作为主站,也可以作为远程设备站使用。
此种通讯因为要加CC-LINK通讯模块,所以成本较高。
3)在CC-LINK网络中还可以加入变频器伺服等符合CC-LINK规格的设备。
2.N:N网络连接N:N网络连接连接图如下:3.并联连接并联连接图如下:1)通讯对象是FX1S、FX1N、FX1NC、FX2N、FX2NC、FX3U、FX3UC同一系列的PLC之间。
2)该通讯在PLC间进行1:1通讯,进行数据交换,只能满足2台PLC的通讯。
一、N:N网络通讯1、通讯解决方案用FX2N,FX2NC,FX1N,FXON可编程控制器进行的数据传输可建立在N:N的基础上。
使用此网络通讯,它们能链接—个小规模系统中的数据。
2、相关标志和数据寄存器对于FXlN/FX2N/FX2NC类可编程控制器,使用N:N网络通讯辅助继电器,其中M8038用来设置网络参数,M8183在主站点的通讯错误时为ON,M8184到M8190在从站点产生错误时为ON,(第1个从站点M8184,第7个从站点M8190)M8191在与其它站点通讯时为ON数据寄存器D8176设置站点号,0为主站点,1到7为从站点号D8177设定从站点的总数,设定值1为1个从站点,2为两个从站点;D8178设定刷新范围,0为模式0(默认值),1为模式1,2为模式2;D8179 主站设定通讯重试次数,设定值为0到10;D8180 设定主站点和从站点间的通讯驻留时间,设定值为5到255,对应时间为50到2550ms案例该系统有三个站点,其中一个主站,两个从站,每个站点的可编程控制器都连接一个FX2N-485-BD通讯板,通讯板之间用单根双绞线连接。
三菱PLC与单片机arduino通讯主要准备一个三菱FX3U PLC、arduino uno、arduino mega 2560、TTL转RS485通讯模块三菱FX3U PLC自由收发来自arduino mega 2560的消息,消息包含字母、数字;功能为读取arduino mega 2560的A0到A7渎值、数字引脚2到9的高低电平变化arduino mega 2560作为PLC的IO扩展,及其收发消息中心arduino uno作为arduino mega 2560的输出执行,arduino uno的输出通过继电器放大作为PLC的输入,总体实现基础闭环控制没法上传原文件,有需要原文件的联系我345827819arduino mega 2560代码:#include <Wire.h>char ca[9]={'O','O','O','O','O','O','O','O','O'};char cc[9]={'Z','Z','Z','Z','Z','Z','Z','Z','Z'};int cd[9]={0,0,0,0,0,0,0,0,0};int i,a,b=0;char x;const char HEADER='H';int plc [28];//8位数PLC读数,字节低高排布字节int pla[20];//高低字节合并,剔出数据溢出int pl[10];//8位数PLC读数int data[8]={0,0,0,0,0,0,0,0};unsigned char plb[6];//8位数PLC读数unsigned char item[2] = {0x02,0x03 }; //发送报头报尾const int ad=0;const int ad1=1;const int ad2=2;const int ad3=3;const int ad4=4;const int ad5=5;const int ad6=6;const int ad7=7;void setup(){Serial.begin(9600);Serial1.begin(38400);Serial3.begin(19200);Wire.begin();for(int i=2;i<=9;i++)//定义数字引脚2到9{pinMode(i,INPUT);digitalWrite(i,HIGH);}}void loop(){IC();int values=0;int a ;int c=0 ;int d=0 ;unsigned int b ;//无符号实数int bit =0;data[0]=analogRead(ad);data[1]=analogRead(ad1);data[2]=analogRead(ad2);data[3]=analogRead(ad3);data[4]=analogRead(ad4);data[5]=analogRead(ad5);data[6]=analogRead(ad6);data[7]=analogRead(ad7);/*.........发送开始.........*/for(int i=2;i<=9;i++){bitWrite(values,bit,digitalRead(i));//位操作,将2到9引脚电平,合为一个8位数bit=bit+1;}sendBinary(values);//以二进制发送2到9for(int i=0;i<=7;i++){sendBinary(data[i]);}delay(200);/*.........发送结束.........*//*.........接收开始.........*/while(Serial3.available()>0){for(int i=0;i<=27;i++){ plc[i]=Serial3.read(); //接收PLC数据}for(int i=0;i<=19;i++){b=word(plc[i+1],plc[i]);//合成数据pla[i]=b;}for(int i=0;i<=9;i++)//筛选数据{ pl[i]=pla[c];c=c+2;Serial.println(pl[i],DEC); //打印数据}for(int i=20;i<=28;i++)//筛选数据{ plb[d]= plc[i];d=d+1;}for(int i=0;i<=7;i++){Serial.write(plb[i]);}}/*.........接收结束.........*/}void sendBinary(int value)//分解数据{Serial3.write(lowByte(value)); Serial3.write(highByte(value));}void IC(){while(Serial.available()>0){char x=Serial.read();Serial.println(x);delay(200);if(x=='A'){cd[0]=1;}else if(x=='B'){cd[1]=1;}else if(x=='C'){cd[2]=1;}else if(x=='D'){cd[3]=1;}else if(x=='E'){cd[4]=1;}else if(x=='F'){cd[5]=1;}else if(x=='G'){cd[6]=1;}else if(x=='H'){cd[7]=1;}else if(x=='I'){cd[8]=1;}else if(x=='a'){cd[0]=0;}else if(x=='b'){cd[1]=0;}else if(x=='c'){cd[2]=0;}else if(x=='d'){cd[3]=0;}else if(x=='e'){cd[4]=0;}else if(x=='f'){cd[5]=0;}else if(x=='g'){cd[6]=0;}else if(x=='h'){cd[7]=0;}else if(x=='i'){cd[8]=0;}else{Serial.println("WAIT");}for(int i=0;i<=8;i++){Serial.print(cd[i]);}for(int i=0;i<=8;i++){if(cd[i]==1){cc[i]='O';}if(cd[i]==0){cc[i]='Z';}}if(cd[8]==1){for(int i=0;i<=8;i++){cd[i]=0;}}Serial.println(cc);Wire.beginTransmission(8);Wire.write(cc);Wire.endTransmission();Serial.println(cc);}} 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、Arduino从机程序#include <Wire.h>char CP[9] ;int i=0;void setup(){Wire.begin(8); // join i2c bus with address #8 Wire.onReceive(receiveEvent); // register eventSerial.begin(9600); // start serial for outputpinMode(2,OUTPUT);pinMode(3,OUTPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);pinMode(7,OUTPUT);pinMode(8,OUTPUT);pinMode(9,OUTPUT);digitalWrite(3,HIGH);digitalWrite(4,HIGH);digitalWrite(5,HIGH);digitalWrite(6,HIGH);digitalWrite(7,HIGH);digitalWrite(8,HIGH);digitalWrite(9,HIGH);digitalWrite(2,HIGH);}void loop(){delay(100);/* Serial.println(CP); */if(CP[0]=='O'){digitalWrite(2,LOW);}else{digitalWrite(2,HIGH);}if(CP[1]=='O'){digitalWrite(3,LOW);}else{digitalWrite(3,HIGH);}if(CP[2]=='O'){digitalWrite(4,LOW);}else{digitalWrite(4,HIGH);}if(CP[3]=='O'){digitalWrite(5,LOW);}else{digitalWrite(5,HIGH);}if(CP[4]=='O'){digitalWrite(6,LOW);}else{digitalWrite(6,HIGH);}if(CP[5]=='O'){digitalWrite(7,LOW);}else{digitalWrite(7,HIGH);}if(CP[6]=='O'){digitalWrite(8,LOW);}else{digitalWrite(8,HIGH);}if(CP[7]=='O'){digitalWrite(9,LOW);}else{digitalWrite(9,HIGH);}if(CP[7]=='O'){digitalWrite(9,LOW);}else{digitalWrite(9,HIGH);}}void receiveEvent(int howMany){while (0< Wire.available()){/* if('z'==Wire.read() ||'O'==Wire.read())*/for(int i=0;i<=8;i++){ CP[i]= Wire.read();Serial.println(CP[i]);}}}三菱PLC程序。
三菱FX5u PLC之间以太网简易连接无线通信方案简易PLC间链接功能,就是在最多8台FX5u可编程控制器或者FX3u可编程控制器之间,进行软元件相互链接的功能。
在实际系统中,同一个车间里分布多台PLC,通常距离在几十米到上百米不等。
在有通讯需求的时候,如果布线的话,工程量较大且不美观,这种情况下比较适合采用无线通信方式。
本方案以三菱FX5u-32MR PLC为例,介绍两台FX5u-32MR PLC以太网简易连接下的以太网无线通讯实现过程。
在本方案中采用了达泰PLC无线通讯终端——DTD419M,作为实现无线通讯的硬件设备。
一、方案概述本方案中,用户无需更改网络参数和原有程序,也不必了解协议细节,通过PLC无线通讯终端--DTD419M,即可直接替换PLC之间有线以太网通讯,且稳定方便的实现无线通讯。
无线网络图▼二、测试设备与参数●三菱PLC型号:FX5u-32MR×2台●达泰PLC无线通讯终端——DTD419MA×2块●主从关系:1主1从●通讯接口:RJ45接口●通讯协议:简单CPU通讯●供电:12-24VDC●传输距离:100米,1KM三、达泰PLC无线通讯终端--DTD419M达泰DTD419M采用2x2两发两收无线架构,空中传输速率高达300Mbps,兼容三菱MELSOFT连接、MC、BCNetTCP、Scoket、Modbus TCP等通讯协议,并采用OFDM调制及MINO技术,使无线可靠传输距离达到1KM范围内均可使用。
DTD419M不仅能与PLC、DCS、智能仪表及传感器等设备组成无线测控系统,同时能与组态软件、人机界面、触摸屏、测控终端等工控产品实现点对点和点对多点的远程无线组网,将分散不便于挖沟布线的设备连接在一起,不需要编写程序,不需要布线,并且稳定可靠。
■主要特征:◆可以直接代替有线以太网线,实现无线组网;◆支持三菱MELSOFT连接、MC、BCNetTCP、Scoket、Modbus TCP等通讯协议;◆全数字无线加密传输方式,不插卡无运行费用;◆无需更改程序,即插即用,自适应接口协议;◆二十年工业现场运行经验:可确保无线产品工作于各种恶劣环境下的工业场合长期运行。
三菱PLC与工控机网口通讯三菱PLC(可编程逻辑控制器)与工控机网口通讯工业自动化的发展,离不开可编程逻辑控制器(PLC)和工控机的应用。
作为工业自动化领域的两个核心设备,PLC和工控机之间的通讯变得至关重要。
在这方面,三菱PLC与工控机网口通讯技术的应用表现出了出色的性能和稳定性,为工业自动化带来了更大的便利。
三菱PLC作为一种常见的工业自动化控制设备,广泛应用于各个领域。
工控机则是专门用于工业自动化系统的计算机,通过工控机,可以实现对PLC进行监控、数据采集和控制等功能。
而PLC与工控机之间的通讯,则需要通过网口进行数据的传输。
三菱PLC与工控机网口通讯的实现,离不开现代通讯协议的支持。
目前,工业领域常用的通讯协议有Modbus、Profibus以及Profinet等。
三菱PLC内置了丰富的通讯功能模块,可以与各种通讯设备进行连接。
工控机则通过软件或硬件的方式,将通讯协议与PLC进行集成,从而实现与PLC的通讯。
三菱PLC与工控机网口通讯的优势主要表现在以下几个方面:1. 灵活性:三菱PLC与工控机网口通讯可以基于不同的通讯协议,满足不同工业场景对通讯的要求。
同时,通过网口进行通讯,可以灵活地配置网络拓扑结构,提高系统的可扩展性。
2. 可靠性:三菱PLC与工控机网口通讯采用高速的数据传输方式,确保数据的实时性和准确性。
同时,工控机具有强大的计算能力,可以及时处理传输过来的数据,提供精确可靠的控制指令。
3. 效率性:三菱PLC与工控机网口通讯能够实现对PLC的远程监控和控制。
这样,工程人员可以通过工控机监控PLC的运行状况和数据变化,及时发现潜在问题并采取措施,提高生产效率和降低故障率。
4. 扩展性:三菱PLC与工控机网口通讯技术支持多机联网,可以同时连接多个PLC和工控机。
这样,可以实现工业生产中不同设备之间的数据共享和互联互通,提高整体系统的智能化水平。
需要注意的是,在三菱PLC与工控机网口通讯过程中,安全性也是一个重要的考虑因素。
三菱plc网口与计算机通讯设置现代工业自动化生产中,PLC(可编程逻辑控制器)被广泛应用于各种设备和机器的控制与调节。
而与计算机通讯是PLC的一个重要功能之一,通过与计算机的通信,可以实现实时监控、数据采集、远程调试等功能。
本文将介绍如何进行三菱PLC网口与计算机的通讯设置。
一、准备工作首先,我们需要确保PLC与计算机之间可以通过网口进行通讯。
网口是PLC与计算机之间的物理连接,通常通过网线将PLC与计算机相连。
在连接过程中,需要注意插头的方向以及网线的质量,以保证通讯信号的稳定和可靠性。
二、配置PLC设置在正式进行通讯设置之前,我们需要登录到PLC的编程软件中,进行相关配置。
首先,选择编辑功能菜单中的通讯参数设置,进入PLC与计算机通讯设置界面。
在该界面中,我们需要设置通讯口的类型、端口号、通信方式等参数。
通常情况下,三菱PLC的网口通信支持以太网、Modbus TCP等协议,根据实际需求进行选择,并按照说明书上的要求设置通讯参数。
三、计算机网络配置在进行PLC网口与计算机通讯之前,我们还需要进行计算机网络的配置。
首先,打开计算机的控制面板,选择网络和Internet选项,进入网络设置界面。
在网络设置界面中,选择适配器选项,找到与PLC相连的网卡,进行相关设置。
根据PLC的要求,设置网卡的IP地址、子网掩码、默认网关等参数。
需要注意的是,计算机的IP地址和PLC的IP地址必须处于同一子网中,才能进行通信。
四、编写通讯程序经过以上配置之后,我们就可以编写通讯程序来实现PLC与计算机之间的通讯了。
在编写通讯程序时,我们可以使用编程软件提供的相关函数和指令,或者使用专门的通讯库来进行开发。
根据具体的需求,可以实现不同的通讯方式,比如周期轮询、事件驱动等。
通讯程序中需要包括与PLC建立连接、数据交换、错误处理等逻辑,以确保通讯的稳定和可靠。
五、调试与优化通讯程序编写完成后,我们需要进行调试和优化,以确保通讯的正常运行。
浅谈用单片机模拟PLC(山寨三菱系列)读书的时候因为学的自动化所以一直以为PLC 是控制的王道,经常鄙视楼下电子系搞单片机的,而且灰常2B 的认为单片机都TM 弱电太娇气不耐艹玩单片机的都是吊丝!所以经常混迹于PLC 实验室电子实验室居然只去了几次,然而随着对单片机和PC 机的了解逐渐加深,越来越觉得自己当年的自己太傻太天真了哎个人觉得PLC 和单片机的关系就好比图章和圆珠笔一样,图章操作简单傻子能盖出漂亮的图案但缺点也显而易见灵活性太差了你不能用图章盖出一些复杂的图案,圆珠笔就正好相反虽然操作难度大点但灵活性强了n 个数量级。
既然单片机的灵活性那么强那么我们能用单片机来模拟PLC 吗,很明显是可以的而且PLC 的核心其实也是单片机,那么该怎么模拟PLC 呢?PLC 分程序和硬件部分,硬件部分主要是做好外围电路设计,实现PLC 的IO 输入输出功能,一般用光耦做IO 口电路设计提高单片机的抗干扰能力,做好稳定的电源设计,电源是可靠性的基础。
其实模拟PLC 的关键再于程序部分,思路是写个编译器把梯形图编译成单片机能执行的机器码,但写编译器工程太大了,我们只是模拟又不是造PLC 所以不用考虑写那种直接把梯形图编译成机器码的编译器了,我们可以把编译过程分解为梯形图>指令表>C51 代码>机器码,这样的话问题就简单多了梯形图转指令表可以手工完成或者写个图形编辑程序来完成但这不是重点,指令表转C51 代码才是模拟PLC 的灵魂所在,虽然是个伪编译器但每条指令的翻译都是蛋疼的过程,我肯定是没办法把所有的三菱指令都模拟出来的,要完成这个任务还得认真学学编译原理啊这是PLC 模拟程序的运行截图,对应指令表的逻辑,发现运行结果是正确的,虽然只完成了几条最简单指令的翻译而且与反指令还存在问题但毕竟思路是正。
用51单片机做简易PLC
最近在51hei单片机论坛上下载了一个PMW-HEX的软件,这个软件可以将三菱PLC编程软件编写的梯形图转换成HEX文件,再将这个HEX文件烧录到51 单片机上,这样51单片机就有了梯形图所编程的功能了。
我觉得蛮有意思的,虽然该软件并不能兼容PLC的所有功能,甚至说很多功能不能兼容,但基本的一些指令和少量的软元件已经足够做一些简单控制功能了。
基于这个我就想着自己动手做一个4入4出的简易PLC来玩玩吧,PMW-HEX的下载地址是:51hei/bbs/dpj-19820-1.html 想了就动手吧,否则以前学的一些电子知识就要荒废了。
因为手上只有AT89S52的单片机,那么就拿这款单片机来设计电路吧。
第一步,先设计供电电路。
按三菱PLC的模式,输入端的公共(COM)是DC24V的地(GND),所以就把DC24V电源作为供电电源。
单片机需要5V 供电,手上的继电器是DC12V的供电,所以这个供电电路就是24V转成12V再转成5V。
因为只是测试的用途所以仅用最简单的转换方法(目前还算可以用吧)。
第二步,设计单片机的最小系统。
也就是用12M晶振配合谐振电容
(30P)电路和上电自动复位电路构成。
第三步,设计开关量输入电路。
这里将仿效三菱PLC的输入,用DC24V
的GND作公共端,经开关返回。
这样就需要使用光耦521-4将DC24V的信号与单片机输入端的5V信号进行隔离转换。
第四步,设计输出到继电器的电路。
由于我使用的是DC12V的继电器,所以也用了光耦521-4进行隔离转换,然后驱动三极管(9013),用三极管来驱动。
三菱A 系列PLC PLC CC CC CC--LINK 通讯方法的实现通讯方法的实现三菱PLC 网络通讯主要有:CC-LINK 通讯,H 网通讯及以太网通讯三种,下面分别简单介绍这三种通讯实现的方法。
这里只是介绍一些基本的通讯方法和注意事项,其它如站设定的详细方法请参看其相应模块的手册。
一、基本知识CC-LINK 中站的类型:远程I/O 站:作为子站,只处理I/O 开关量的站点,如:AJ65BTB1-16D (16点输入模块);远程装置(设备)站:能处理开关量和数字量的模块,如:AJ65BT-64AD (A/D 转换模块);本地站:具有CPU 能和主站或其它本地站通讯的模块,如:A3NCPU; 主站:控制远程I/O 站,装置站和本地站的站点。
二、A 系列PLC CC-LINK 通讯的实现A 系列PLC CC-LINK 的通讯相比Q 系列PLC 来说要麻烦一点,在Q 系列PLC 中实现CC-LINK 通讯只要在软件中组态就可以了,而A 系列PLC 则需要在程序中编程实现。
实际上,在编程时,只有搞清以下两方面就可以了:一是CC-LINK 的I/O 信号,二是CC-LINK 模块用于和CPU 交换数据的缓冲区(BFM),尤其是后者更为重要。
下面分别来说明:1、CC-LINK 模块的I/O 信号CC-LINK 模块的I/O 信号分是为了主CPU 联系用的,用来指明CC-LINK 模块的状态、通讯状态等一些开关量,可以被主CPU 直接使用,从而针对不同的情况让主CPU 做出不同的处理。
I/O 的名称和具体含义在这时里不在详述,可以参看A系列CC-LINK模块手册。
需要说明的是,这些信号的X和Y信号都是针对于主CPU来说的,X信号是从CC-LINK模块传送到主CPU的信号(对于CC-LINK模块来说是输出信号),Y信号是从主CPU到CC-LINK模块的信号(针对CC-LINK模块来说是输入信号),这点要注意区分,不要混淆。
山东凌远机电科技有限公司三菱PLC-FX1N与505通讯说明1.三菱FX1N说明1.1三菱通讯协议三菱通讯协议默认为:数据位7;奇偶校验:偶校验;停止位1;1.2三菱编程口说明编程口如图:2.TP505说明2.1产品简介TP-505是采用工业级设计,专门为工业PLC产品配套使用,为具备RJ-45网口、RS232或RS485的PLC产品提供远程下载程序和远程数据采集功能,如西门子、三菱、欧姆龙、松下、台达、永宏等品牌的PLC,通过高速的4G运营商网络,结合PLC配套软件或天启物联云平台,实现远程下载程序、采集数据。
TP-505不仅支持三大运营商的全部网络制式,并且配有两个RJ-45网口,一个可以wan 口lan口切换使用,一个RS232和一个RS-485串口。
全网的配置更突破了网络的局限,不仅支持4G网,也可工作在TD-SCDMA/WCDMA/EVDO等3G网络或GPRS/EDGE/GSM/CDMA 等2G网络下,并且支持不同网络制式的自动切换。
在没有4G信号的场合或者SIM卡不支持4G时,PLC-505可自动切换到3G或2G的网络。
TP-505使用方便,无需任何配置,即插即用。
使用天启物联云平台和网口通/串口通软件,可方便的与PLC配套软件集成,无需额外的集成开发工作。
TP-505以稳定、方便、易用、好用的特性为客户项目部署提供最大的便利。
2.2产品外观s2.3标准配件注意:由于客户出货要求的不同,配件也不一样,以上仅供参考。
2.4安装尺寸2.5工作原理1、网口使用方式TP-505通过交叉网线和PLC连接起来,TP-505通电后,利用无线网络拨号(或者有线网)连上Internet,然后发起对天启物联云平台的连接。
同时上位机电脑运行网口通软件也连接到天启物联云平台,通过网口通功能将PLC和上位机电脑置于同一个虚拟局域网中。
这样,用户通过编程软件就可以访问到PLC,并进行程序远程下载和远程数据采集操作。