PLC与多个单片机与plc通讯通讯问题

查看: 1906|回复: 11
做PLC与单片机以太网通讯,有兴趣的请讨论
主题帖子精华
新手上路, 积分 28, 距离下一级还需 22 积分
在线时间0 小时
本人毕业课题需要用以太网实现PLC与单片机之间的通讯,PLC做服务器,单片机做客户端,基于原子哥的uip例程,
现在可以传输数据了,就是不知道如何跟PLC的内部地址对应起来。比如我在上位机的触摸屏上点LED1的按钮,下位机会收到
触发位,但是我怎么区分这个就是对应LED1的,很是纠结。。
请有这方面经验的哥们指点一下。
主题帖子精华
在线时间255 小时
这个我们&的webserver就有实现啊。
我的淘宝小店:
主题帖子精华
新手上路, 积分 24, 距离下一级还需 26 积分
在线时间1 小时
看你这款PLC的以太网有没有MODBUS的ICP/IP啊&,有的话单片机端写个MODBUS的ICP/IP的从机来对应地址就可以操作了哦,我自己的看法,错了不要喷哦,谢谢
主题帖子精华
初级会员, 积分 71, 距离下一级还需 129 积分
在线时间2 小时
回复【楼主位】ysuzhai:
---------------------------------
你可以按照MODBUS协议的写法,PLC都支持MODBUS协议,你单片机端也做对应的协议就好了
主题帖子精华
初级会员, 积分 71, 距离下一级还需 129 积分
在线时间2 小时
回复【3楼】qzwx741:
---------------------------------
PLC的以太网没有MODBUS的ICP/IP也没关系,市场上有个标准件叫485猫,直接插上通电就好了
主题帖子精华
新手上路, 积分 28, 距离下一级还需 22 积分
在线时间0 小时
回复【5楼】:
---------------------------------
我PLC用的AB&logix5000,支持以太网通讯,哥们你说的是MODBUS&TCP协议吧,听说过,就是不知道怎么实施,菜鸟,第一次搞通信
主题帖子精华
新手上路, 积分 28, 距离下一级还需 22 积分
在线时间0 小时
回复【5楼】:
---------------------------------
是不是不用移植uip协议栈了
主题帖子精华
新手上路, 积分 28, 距离下一级还需 22 积分
在线时间0 小时
回复【2楼】正点原子:
---------------------------------
貌似跟webserver不太一样吧
主题帖子精华
在线时间255 小时
回复【8楼】ysuzhai:
---------------------------------
我们websever的功能和你说的要求一样啊.
按一下按钮,控制LED的亮/灭.
我的淘宝小店:
主题帖子精华
中级会员, 积分 416, 距离下一级还需 84 积分
在线时间5 小时
还是走Modbus-RTU协议吧。
1.&实用性很强,到处都在用。
2.&施工简单。
主题帖子精华
在线时间35 小时
e45ebc922d85945_3.png (0 Bytes, 下载次数: 6)
22:54 上传
可以借鉴一下这个方案!
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
主题帖子精华
在线时间35 小时
485就走的modbus协议!
纵浪大化中,不喜亦不惧;应尽便须尽,无复独多虑!
Powered by可编程控制原理及应用
适用课程:&默认课程(1),可编程控制器原理及应用(),可编程控制器原理及应用()【访问量:32962】
单片机与PLC的多模式控制综合实验介绍
可编程控制器简称PLC,它的使用方法简单,便于掌握,且可靠性较高,抗干扰性很强,自身具有比较完善的功能和模块化的结构。PLC已经广泛地应用在机械制造、石油化工、冶金钢铁、汽车、轻工业等领域,并且在其他领域,例如在民用和家庭自动化中,PLC的应用也得到了迅速的发展,它已经成为当代工业自动化的主要支柱之一。
特别是近年来,随着计算机控制的推广和普及,相当多的企业已经在大量地使用各式各样的可编程设备,例如计算机、PLC、单片机等,并且将这些作为控制器的不同可编程设备连接在单层网络或多层网络上,相互间进行数据通信,对系统进行多功能,多模式的控制,实现了全车间或工厂的综合自动化。而且已经成为一种工业发展趋势,应用越来越广泛。为此,大多数高校都建立了相关的PLC实验室,但都是单纯的以PLC作为控制器,并没有与其他控制器结合,实现对系统的多模式控制。所以为了与工业发展趋势一致,有必要在学校构建多功能、综合性的PLC实验控制系统。
目前在工业上,很多控制系统都是以三相异步电动机作为实际的控制对象进行控制,主要内容包括电机的正反转控制、电机调速等等。电机调速方式有很多方法可以实现,如利用继电器实现对电机的调速和利用单片机对电机实现调速等,最常用的是利用PLC(可编程逻辑控制器)连接变频器来实现对电机的控制。
以三相异步电动机为控制对象,利用单片机、可编程控制器、变频器、上位PC机(MCGS和VB)、光电编码器构建了一个多功能大综合实验控制系统,实现了单片机控制电机多段速调速、PLC控制多段速调速、PLC控制闭环PID无级调速、单片机控制闭环PID无级调速多种电机调速模式。另外利用工业组态软件MCGS制作上位机监控系统,实现具有上位监控的调试控制方式。该系统集单片机设计、可编程控制器设计、变频调速技术、工业组态软件技术于一身,系统成本低,柔性强,是一种可以激发学生创新能力,实现现代综合实验的良好平台。
系统方案设计
系统总体框架
本次毕业设计完成的是基于单片机、PLC控制的变频调速综合实验系统的设计。其系统整体框架分为控制层和上位监控层两层。控制层是由可编程控制器、单片机、变频器、电机/运动控制机构和光电编码器构成闭环控制系统;上位监控层采用在工业领域广泛应用的工业组态软件MCGS进行监控界面快速构造和生成上位机监控系统,完成对下位机的PLC的控制与监视。
系统实现功能
基于单片机、PLC控制的变频调速综合实验系统,可以为相关专业的学生开设以PLC为中心控制平台的系列实验和以单片机为中心控制平台的系列实验。实验内容涉及PLC技术、单片机技术、工程组态软件技术、计算机技术、多种通讯技术等方面的知识,覆盖面广,综合性强。该综合实验系统具体实现功能如下:
1)实现基于PLC控制的电机多段速变频调速;
2)实现基于PLC、光电编码器的闭环PID无级变频调速;
3)实现基于单片机控制的电机多段速变频调速;
4)实现基于单片机、光电编码器的闭环PID无级变频调速;
5)具有RS232、RS422、RS485多种通信模式;
6)具有DDE(动态数据交换)模式;
7)具有基于MCGS工业组态软件的上位监控系统;
基于单片机、PLC控制的变频调速系统
方案既包含了单片机对变频器的直接控制和PLC对变频器的控制,还可以利用工程组态软件MCGS的DDE(动态数据连接库)与VB连接,单片机利用串口与PC机进行通信,以VB作为桥梁实现单片机对PLC的控制,从而达到对变频器的控制实现电机变频调速。同时也可以将MCGS中的数据通过DDE与VB的连接,利用串口将上位机的数据传回单片机,由单片机完成LED显示。方案三的原理框图如图2.1所示。
图2.1 方案原理框图
基于PLC控制的变频调速系统
基于PLC控制的变频调速系统中以PLC作为控制器,变频器作为执行器,电机作为控制对象。用光电编码器对电机的速度进行采集,送回控制器形成闭环控制。用工程组态软件MCGS制作上位机监控系统,实现上位PC机对系统的控制。基于PLC控制的变频调速系统原理如图3.1所示。
图3.1 基于PLC控制的变频调速系统原理图
控制多段速变频调速
3.1.1 多段速变频调速原理
变频器的输入信号包括(运行/停止、正转启动/反转启动、点动)等运行状态进行操作的信号(数字信号)。变频器通常利用继电器接点与上位机器连接,并得到这些信号。
通过对变频器多功能输入端(RH,RM,RL)进行设定,即可以得到多级速度频率,实现电机多级调速运转,普遍高性能的变频器可以设定3~8级速度频率。实际上,可以使用PLC的开关量输入输出模块控制变频器的多功能输入端,以控制电机的正反转,转速,实现有级调速。对于大多数的系统,这种控制方式不但能够满足工艺要求,而且接线十分的简单,抗干扰能力强,使用方便,同用模拟信号进行速度给定的方法相比,这种方式的设定精度高,成本低,也不存在由漂移和噪声带来的各种问题。本次设计的多段速变频调速系统,采用的是三菱的变频器(S500)和三菱的PLC(FX2N—48MR)。可以实现对三相异步电机的正反转控制,停止控制以及八级速度的有级调速。电机八级转速是通过端子RH(高速)、RM(中速)、RL(低速)三个端子的交换组合得到的,其中具体组合所对应的速度如表3.1所示
表3.1 转速对应关系
3.1.2 PLC控制多段速变频调速硬件图
硬件连接主要是PLC和变频器的连接,以及PLC的供电、变频器的供电和电机与变频器的连接。具体连接如图3.2所示
图3.2 多段速调速硬件连接图
3.1.3 PLC下位机设计
1)PLC的I/O分配
由于此次PLC控制多段速变频调速设计了MCGS上位机监控,由于PLC的输入端子X只能进行读操作,不能够对其进行写操作,所以只能够用中间状态继电器M对PLC的输入端子X进行替换。故在PLC的I/0分配中没有出现输入端子X,而是直接使用的中间状态继电器M,通过上位PC机对中间状态继电器M进行控制实现系统功能。具体分配如表3.2所示。
PLC的I/O分配表
2)中间状态继电器M的使用
M对应的功能如表3.3所示
表3.3 中间状态元件表
3)梯形图程序
其中在梯形图的注释中只是介绍了第一速度,第二速度,第三速度是怎样实现的。其他的四个速度是通过Y2,Y3,Y4的组合来实现的。当M3为1的时候,此时是Y3,Y4同时为1,Y2为零。变频器便会得到第4个频率,从而改变电机的速度得到第四速度。当M4为1的时候,此时是Y2,Y4同时为1,Y3为零。变频器便会得到第5个频率,从而改变电机的速度得到第5速度。当M5为1的时候,此时是Y3,Y2同时为1,Y4为零。变频器便会得到第6个频率,从而改变电机的速度得到第6速度。当M6为1的时候,此时是Y3,Y4,Y2同时为1。变频器便会得到第7个频率,从而改变电机的速度得到第7速度。从而实现了多级有级调速。(梯形图略)
3.1.4 基于MCGS上位机监控系统设计
在本次毕业设计中采用工程组态软件MCGS构建上位监控系统,上位监控系统界面如图3.3所示。在上位机中的设计中主要完成的是在实时数据库中建立与所用图源相对应的变量。而后在设备窗口中建立串口通讯父设备和设备0(三菱PLC),完成相关属性设置后,再进行MCGS与PLC的通道连接。最后因为上位机监控界面要产生与下位机动作时相应的动画效果,所以必须在运行策略中编辑运行脚本程序。
图3.3 上位监控界面
闭环PID无级变频调速
3.2.1 闭环PID无级变频调速原理
三菱公司的PLC(FX2N—48MR)拥有FX2N-485-BD 通讯板。那么利用这个通讯板,通过网线连接(网线的RJ45插头和变频器的PU插座接),使用两对导线便可以使PLC与变频器连接起来。将变频器的SDA与PLC通讯板(FX2N-485-BD)的RDA连接,变频器的SDB与PLC通讯板(FX2N-485-BD)的RDB连接,变频器的RDA与PLC通讯板(FX2N-485-BD)的SDA连接,变频器的RDB与PLC通讯板(FX2N-485-BD)的SDB连接,变频器的SG与PLC通讯板(FX2N-485-BD)的SG连接。这样便可以实现PLC与变频器之间的通信,实现对变频器的读写操作,在完成变频器各种参数的设定后,通过按照变频器手册的内容设定命令代码数据,计算机发出通信信号后,便可以进行各种运行和监视。包括实现电机的正转,反转控制,速度的调节等等。闭环PID调速就是在开环无级调速的基础上面加入了一个速度反馈,通过PLC内部的PID调节指令进行PID运算,具体实现是通过用光电编码器对电机的转速进行测定,光电编码器再与PLC的X0,X1输入端相连,用PLC内部的高速计数器对其得到的脉冲进行计数。通过脉冲个数,时间,每转的脉冲数之间的关系算出转速,再将其通过PID指令进行PID运算,得出较稳定的转速。
3.2.2 闭环PID无级变频调速硬件总图
1)闭环PID无级变频调速硬件图
硬件图的连接主要是PLC和变频器的连接,光电编码器的连接,以及PLC的供电,变频器的供电和电机与变频器的连接。具体连接如图3.4所示。
图3.4 闭环PID变频调速硬件图
2)光电编码器与PLC的连接
编码器的出线端子有总共有5根:标注为C的那一根接12到24V直流电源,标注为A的代表A相,标注为B的代表B相。标注为D那一根接地,本设计中只用到了A,B,C,D四根线,其中标注为C的那一根线接PLC的直流电源24V,标注为A的一根线接PLC的输入端X0,标注为B的一根线接PLC的输入端X1,如图3.5所示。
图3.5 光电编码器与PLC连接图
3.2.3 PLC下位机设计
1)PLC的I/O分配
由于是通过RS-485通讯网络[3]来实现PLC对变频器的运行和监视。故两者是通过网线连接(网线的RJ45插头和变频器的PU插座接如图3-9所示),使用两对导线便可以使PLC与变频器连接起来。具体的连接如图3.6所示。在PLC的输入端子X,用了X1,X2作为SPD速度检测指令的输入端子,分别对速度编码器的产生的脉冲进行计数。具体对应如表3.4所示。在作为SPD指令的输入端子的时候X1,X2将不能够在用于其他的高速指令。
表3.4 输入端子对应表
图3.6 RS485模块与变频器的连接
2)中间状态继电器M的使用
由于设计了MCGS的上位机监控系统,所以用中间继电器M来代替了PLC的输入端X。M对应的功能如表3.5所示
表3.5 中间状态元件表
3)PLC通讯格式设定[3]
三菱FX系列PLC在进行计算机链接(专用协议)和无协议通讯(RS指令)时需要对通讯格式(D8120)进行设定,其中包含了波特率,数据长度,奇偶校验,停止位和协议格式等。在修改了D8120[3]的设定后,确保关掉PLC的电源,然后再打开。
对D8120的设置如下:
即是数据位长度为7位,偶校验,有2个停止位,1920BIT/S, 无标题符和终结符,没有添加和校验码,采用无协议通讯(RS485)。
4)PID指令参数设定[9]
本设计中PID运算,是通过使用三菱FX2N-48MR的PID指令实现,如图3.7所示。PID回路运算指令编号FNC88,源操作数[S1]、[S2]、[S3]和目标操作数均为D,16位运算,占9个程序步。[S1]和[S2]分别用来存放给定值SV和当前测量值PV,[S3] ~[S3]+6用来存放控制参数的值,运算结果(控制器的输出)MV存放在[D]中。源操作数[S3]占用从[S3]开始的25个数据寄存器。
PID指令用于闭环模拟量控制,在进行PID控制开始之前,应使用MOV指令将参数设定值预先写入数据寄存器中。PID指令相关参数设置如表3.6所示。
图3.7 PID指令
表3.6 PID参数设置
D101中 的 b2和b5不能够同时被激活。每次都只能够允许一个设定值输入到数据寄存器D122和D123中。D101中各位的定义如下表3.7所示。
表3.7 D101各位的定义
PID指令可以同时多次使用,但是用于运算的数据寄存器元件号不能够重复。采样时间Ts的最大误差范围为-(一个扫描周期+1ms)~+(一个扫描周期)。Ts很小时应该进入恒定扫描模式,或在定时中断程序中编程。如果Ts小于扫描周将会发生PID运算错误,并令Ts等于扫描周期来执行PID指令。
令Ti或Td为0,可以去掉PID控制中的积分作用和微分作用,得到PI或PD控制。5)变频器参数设置[2]
由于涉及到PLC(FX2N—48MR)与变频器(S500)之间的通讯,故必须对变频器的一些相关参数进行设置。具体设置如表3.8所示。
表3.8 三菱变频器(S500)参数相关设置
6)梯形图程序设计
3.2.4 基于MCGS上位机监控系统设计
上位机界面的设计中使用了两个文本框,分别为变频器写运行频率和读运行频率的输入框。另外有五个按钮分别实现对电机的正转控制,反转控制,停止,写入运行频率和读取运行频率。如图3.9所示。
图3.9 闭环无极调速上位监控界面
基于单片机控制的变频调速系统
在当今工业控制上并不是采用单一的控制模式对现场控制对象进行控制,往往都是采用不同的控制器进行组合实现多模式控制,以适应不同的应用场合。在基于PLC控制的电机变频调速的基础上面加入单片机控制系统,以单片机作为控制器,实现对电机变频调速的多模式控制。控制原理如图4.1所示。单片机控制电机变频调速有两种方式。
1)单片机直接通过控制与变频器功能端相连的继电器的通断实现多段速变频调速。
2)另外一种是单片机通过串口和上位机连接后,通过VB采集数据,而后利用VB与MCGS的DDE库(动态数据连接库)连接,达到对PLC的控制实现变频调速。
图4.1 单片机控制变频调速原理图
单片机控制电机变频调速,主要实现以下功能:
1)通过单片机对继电器的通断控制,实现电机多段速变频调速;
2)实现单片机与上位PC机的串口通信[10],能够与上位PC机通过RS-232串口发送和接受数据;
3)用Visual Basic编写上位机程序,并且与工程组态软件MCGS通过DDE(动态数据库)相连实现数据的相互交换;
4)实现单片机控制电机闭环无级变频调速;
5)能够把接收到上位PC机发送的数据送入LED显示[10];
单片机控制模块设计
4.1.1 主要模块电路设计
1)单片机控制模块
在设计中单片机要与上位PC机进行通信[10]。PC主机是用的RS232串口,由于RS-232总线标准的电平值(逻辑“1”:-5V~-15V;逻辑“0”:+5V~+15V)与TTL电平(逻辑“1”:2.4V;逻辑“0”:0.5V)标准值不同,因此信号必须经过接口电路进行标准转换。实现这种变换的方法可用分立元件,也可用集成电路芯片。在电平转换电路中我们使用了MAX232芯片对电平进行转换。具体单片机和MAX232芯片,以及两者之间的连接如图4.2示。
图4.2 单片机控制模块电路图
2)LED显示电路模块[10]
由于单片机要对上位PC机传回的数据进行显示,所以设计了LED显示电路如图4.6
所示。使用的是共阳极的LED数码显示管,在显示的时候我们用了6个8位并行输出的
寄存器74LS164。如图4.3所示。
图4.3 LED显示电路
4.1.2 特殊芯片介绍
1)输入,并行输出寄存器74LS164
74LS164引脚图
对应的引脚如图4.3所示。
:低电平,H:高电平,X:高低电平均可,↑:上升沿
Q00,Q10,Q20,……Q70分别是输出端的Q0,Q1,Q2,……Q7在指明的稳态输入条件建立之前的电平;
Q0n,Q1n,Q2n,……Q7n分别是输出端的Q0,Q1,Q2,……Q7在时钟最近从低到高跳变之前的电平;
:时钟脉冲,移位操作有效;
MR(低电平有效):异步清零端,低电平输出被清除,与时钟脉冲无关;
电源参考电压值:TTL最大极值是+7V,一般是取+5V;
A/B:门控串行输入端,当两个输入端的任何一个或两个为低电平,此时禁止新数据的输入并在下一个时钟脉冲从低高跳变的时候输出移位,并将第一改置为低电平,当一个为高电平的时候,允许另外一个输入端输入,并且由它来决定第一级触发器的状态;
2)单片机 AT89SC52
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52的引脚图如图4.5所示。
图 4.5 AT89S52引脚结构图
单片机直接控制多段速变频调速
用继电器和变频器[5](S500)的三个功能端子(RH,RM,RL)相连,用单片机来控制继电器的通断,通过三个继电器不同的通断状态,得到变频器功能端的不同的输入组合实现单片机控制的多段速变频调速。
4.2.1 单片机控制多段速变频调速原理图
单片机控制多段速变频调速原理框图如图4.6所示。
图4.6 单片机控制系统原理框图
4.2.2 硬件电路设计
由于单片机的输出端的电压太低,不足以驱动继电器,故利用三极管对电压进行放大驱动继电器。如图4.7所示。
图4.7 继电器连接图
4.2.3 单片机程序设计
单片机的P2.0口、P2.1口、P2.2口分别对应控制与变频器的三个功能输入端(RH、RM、RL)相连的继电器。通过控制P2.0口,P2.1口,P2.2口输出的电平来控制三个继电器的通断,进而控制变频器实现多段速调速。为了便于操作,设置了键盘,按一次实现第一转速,再按一次实现第二转速,依次类推直到实现第八转速时,当按下第九次自动回到第一转速。具体程序如下:
K1 EQU P1.0
MAIN: MOV R0, #00H
START: JB K1, $
MOV P2, R0
CJNE R0, #08H, START
单片机控制电机无级变频调速
以单片机作为控制器,要实现基于单片机控制的电机闭环无级变频调速,首先必须实现单片机与执行器变频器的通信。但是变频器是基于RS485网络实现通信,单片机没有现成的RS485网络通信模块。要完成单片机与变频器的通信,就必须设计单片机的RS485通信模块并且开发相应的驱动程序。这样便会耗费大量的时间,人力,物力和才力,所以就通过另外的渠道实现。
本设计提出了单片机通过串口和上位机连接后,通过VB采集数据,而后利用VB与MCGS的DDE[6](动态数据交换)连接,达到对PLC的控制实现变频调速这一方案。用VB制作监控界面,单片机和PC机通过串口进行通讯。这样VB就可以通过串口采集单片机发送的命令指令。工程组态软件MCGS通过DDE(动态数据连接库)可以与VB进行连接实现数据的交换,故单片机通过VB,MCGS的DDE库就可以实现对PLC的控制完成闭环无级变频调速。原理框图如图4.8所示。
图4.8 单片机控制闭环无极变频调速原理框图
4.3.1 单片机程序设计
单片机是通过串口与上位PC机进行通讯。用VB制作上位机程序,实现单片机和VB的数据传送和接收。所以在单片机程序中初始化串口程序中,波特率,数据位等必须和VB通讯程序中的波特率,数据位等完全一致,否则将导致通讯失败。
1)单片机通讯程序流程图
单片机通讯流程图如图4.9所示。
图4.9 单片机通讯流程图
2)单片机通讯程序(略)
4.3.2 MCGS相关设计
由于单片机控制的闭环PID变频调速系统只需要在基于PLC的闭环PID变频调速系统中加入单片机控制。因此MCGS上位机设计只需要在基于PLC的闭环PID变频调速系统中的上位机中对DDE(动态数据库)进行相关的设计即可。所以就不再对怎样制作MCGS上位机监控系统进行一一阐述。
1)DDE(动态数据库)工作原理及介绍
A:DDE概述
DDE(Dynamic Data Exchange动态数据交换)协议是一种开放的、与语言无关的、基于消息的协议,它允许多个应用程序以任何人为约定的格式交换数据或命令。它是应用程序通过共享内存进行进程间通信的一种形式,也是目前不需要用户干预的最好的数据交换方法。应用程序用DDE建立的链路不仅可进行一次数据传送,而且当数据更新时不需要用户参与即可进行数据交换。如果操作系统支持DDE协议,那么应用程序仅需要与操作系统接口,而应用程序之间无需接口。
DDE协议为控制通信对象划分为:服务名 (又称应用程序名)、主题名和项目名。每次DDE会话由服务名和主题名唯一确定的。服务名是由服务器应用程序注册,客户应用程序想要与服务器应用程序建立会话时必须指明的字符串标识;主题名用以识别逻辑数据关联的字符串,是数据的总分类,在会话期间可以交换其中的多个数据项;项目名用于标识交换数据单位的字符串,是与应用程序间交换的主题的有关实际信息。DDE为实现软件的开放性打下了基础,它增加了软件的使用范围。
B:DDE工作原理
DDE最早随着window 31由美国微软公司提出。目前wind0ws98/NT仍支持DDE技术,两个同时运行的程序间通过DDE方式交换数据时是Client和Server的关系,如图4.10所示。一旦Client和Server建立起连接关系,则当Server中的数据发生变化后就会马上通知Client。通过DDE方式建立的数据连接通道是双向的, 即Client不但能读取Server中的数据,且可对其进行修改。
图4.10 DDE工作原理与结构
Windows操作系统中有一个专门协调DDE通信的程序DDEML(DDE管理库)。实际上Client和Server之间的多数会话并不是直达对方的。而是经由DDEML中转。一个程序可以同时是client和Server。DDE方式有冷连接、温连接、热连接等3种。在冷连接方式下,当Server中的数据发生变化后不通知Client, 但Client可随时从Server读写数据在温连接方式下,当Server中的数据发生变化后马上通知Client,Client得到通知后将数据取回;在热连接方式下,当Server中的数据发生变化后马上通知Client,同时将变化后的数据直接送给Client。
DDE Client程序向DDE Server程序请求数据时, 它必须首先知道DDE Server程序的名称(即DDE Service名)、DDE主题名称(Topic名),以及请求的数据项(item名)。DDE Service名应具有唯一性,否则容易产生混乱。通常DDE Service名就是DDE Server的程序名称,它是由程序设计人员在程序内部设定好的,并不是通过修改程序名称就可改变的。Topic名和item名也是由DDE Service在其内部设定好的。所有DDE Server程序的Service名、Topic名都注册在系统中。当一个DDE Client向一个DDE Server请求数据时,DDE Client必须向系统报告DDE Server的Service名和Topic名。只有当Service名、Topic名与DDE Server内部设定的名称一致时,系统才将DDE Client的请求传达给DDE Server。当Service名和Topic名相符时, DDE Server马上判断Item名是否合法。如果请求的Item名是DDE Server中的合法数据项,DDE Server即建立此项连接。建立连接的数据数值发生改变后DDE Server会随时通知DDE Client。一个DDE Server可有多个Topic名,Item名的数量也不受限制。
C:DDE技术现状
如前所述,DDE“软通道”技术确实比自行开发驱动程序有不可比拟的优势,但现实中DDE技术的应用还停留在一种传统的模式上,即一种一对一的模式,没有一种通用(一对多)的模式,也就是说每一次的应用都要开发新的DDE采集程序,这样会造成资源的浪费,延缓开发进度。
2)DDE与VB实现数据交换原理
A:MCGS的DDE特性
MCGS软件包由McgsSet和McgsRun两大部分组成。McgsSet为画面制作系统,所有界面设计,变量和动画连接的定义等均在McgsSet完成。McgsRun则用于显示动画图形,负责数据库与服务程序数据交换,并把其变化用动画表示出来。MCGS的DDE对话的内容是通过三个标识名来约定的:应用程序名:它是进行DDE对话的双方名称;主题: 被讨论的数据域;项目: 被讨论的特定数据对象。为了建立DDE连接,需要在McgsRun的实时数据库里建立一个变量作为DDE变量,在它的DDE连接管理里面建立与DDE变量的连接并登记三个标识名。MCGS运行系统的程序名是“McgsRun”,主题规定为“DataCentre”,项目是在定义DDE变量时定义的项目名称也就是DDE变量的名称。
B:VB的DDE特性[9]
VB作为Windows环境下的快速开发工具,与Windows操作系统同出于微软一家,用VB可以快捷地开发出DDE客户或服务器的应用程序,支持Windows下的DDE技术。
①VB的DDE属性、DDE事件和DDE方法:VB中支持DDE的对象有5类:窗体、多文档窗体、标签、文本框和图片框,其中,窗体和多文档窗体可作为DDE服务器即数据的提供者,Label、TextBox和PictureBox等可以作为DDE服务器即数据的接收者。VB给发送端对象提供了两种DDE属性和4种DDE事件,给接收端对象提供了4种DDE属性、4种DDE事件和4种DDE方法见表4.1。
表4.1接受端对象的属性、事件及方法
②利用VB开发DDE客户/服务器应用程序:在其中, DDE链接依赖于对象的DDE属性设置。VB分别作为DDE客户和DDE服务器时,DDE属性的不同设置见表4.2所示。
表4.2 VB作为DDE客户/服务器的DDE属性设置
span style='mso-ignore: ;z-index:1;left:0margin-left:4margin-top:8 width:150height:41px'
span style=';mso-ignore:left:0z-index:1'
span style='mso-ignore: ;z-index:2;left:0margin-left:-1margin-top:9 width:166height:37px'
span style=';mso-ignore:left:0z-index:2'
0没有DDE会话,默认值1窗体为发送端,允许向该窗体建立了DDE会话的客户提供数据
不建立连接
LinkTopic链接方式
写出应用程序名/窗体名
服务器程序名/窗体名
LinkItem链接方式
提供DDE控件名为项目名
服务器提供的项目名
③动态数据交换的过程:DDE管理器作为服务端通过驱动程序从PLC的内存中采集数据,与组态软件进行数据交换后,再通过驱动程序写入PLC的内存区。
④动态数据交换的建立过程:DDE建立主要包括细节的描述、网络的设置、数据点的选取,其中主要是进行设备的配置和点的设置。建立需要监控的点,并对其进行编辑。
3)DDE(动态数据库)相关设置[9]
DDE服务器节点配置设置[9]
如图4.11所。
图4.11 DDE服务器节点配置设置
4.3.3 VB相关设计
1)VB上位机界面设置
为了方便监视VB与DDE(动态数据交换)进行数据交换,设计VB上位界面,使得两者在进行数据交换时一目了然,如图4.12所示。
图4.12 VB上位界面
2)VB相关连接属性设置[4]
如图4.13所示
图4.13 VB连接属性设置
3)VB通讯程序设计[4]
本设计中单片机与上位PC机实现串口通讯。我们利用VB编制上位机程序。通过VB对单片机的数据进行采集,同时VB又把和DDE交换后的数据送入单片机,通过LED显示。我们选择一种封装性很好的使用Active X控件Microsoft Communications Control,version 6.0(以下简称为MSComm控件)进行编程,通过对该控件的正确使用,我们可以比较轻松地编写出所需的串行通信程序。它有一个形象的外表如图4.15所示:MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,而且在VC、VB、Delphi等语言中均可使用(在本次设计中我们尝试用VB、VC编写了串口程序)。MSComm是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
VB通讯程序流程图
系统调试分为三大块进行,从基于PLC控制变频调速开始,一步一步向上加入其他模块的控制,最后在进行整体联机调试。
1)PLC控制的变频调速调试;
2)单片机控制的多段速变频调速调试;
3)单片机控制PLC变频调速调试;
PLC控制的变频调速调试
5.1.1 多段速变频调速梯形图仿真
在编写完梯形图程序后,利用GX Developer自带的仿真程序进行程序的仿真。看PLC的输出是否符合预期设计的要求。仿真的结果与预期设计的输出结果完全一致,仿真结果如图5.1所示,预期设计结果表5.1所示。
图5.1 继电器内存监视图
表5.1 预期设计结果
5.1.2 组态软件调试
完成上位组态环境界面的设计后、编写相应的脚本程序以及运行策略、进入MCGS运行环境,对界面进行操作、按下正转按钮实现正转时指示灯变为绿色;电机上的标识变红色;变频器标识闪烁如图5.2所示,按下反转按钮实现反转时指示灯变为绿色;电机上的标识变红色;变频器标识闪烁如图5.4所示,按下停止按钮则电机停止转动,指示灯变为红色;电机上的标识为白色红色;变频器标识不闪烁如图5.3所示。
图5.2 按下正转按钮
图5.3 按下停止按钮
图5.4 按下反转按钮
单片机控制的多段速变频调速调试
单片机直接控制与变频器三个功能端(RH,RM,RL)相连的继电器的通断实现多端速调速。用万用表测试单片机控制继电器的三个输出端(P2.0,P2.1,P2.2)的输出是否符合预期设计的要求。测试完后将三个输出口与继电器连接,在测试继电器的输出是否按照预期设计要求进行通断。最后将单片机,继电器,变频器,三相异步电机连接起来,看单片机能否实现多段速调速控制。
单片机控制PLC变频调速调试
单片机控制PLC变频调速调试,主要是对VB与DDE(动态数据连接)连接调试。看VB中的数据是否按照预先设计的要求传送到DDE中。在进行调试中遇到了一些问题。首先是DDE与VB的建立出现问题。当两边完成了相关属性的设置后,运行MCGS和VB。结果出现“DDE与VB无法建立”提示框如图5.5所示。根据提示发现在VB中的DDE属性设置出现问题。由于在本设计MCGS中的DDE是作为客户端接收从VB中发来的数据。那么VB作为服务器,应该将窗体FORM1的LinkMode设置为1-Source,将VB中的数据作为源,如图5.6所示。
图5.5 “DDE与VB无法建立”提示框
图5.6 窗体属性设置框
VB中有一些数据传送到MCGS中后,发生了变化,从而使得控制出现问题。例如往VB中的文本框输入“1”,要将“1”通过DDE与VB的连接传送到MCGS中的输入框中。结果传送到MCGS中的“1”被强制清零,经过分析结果发现是组态软件中的运行策略里面的脚本程序对其清零。MCGS一启动就按照所编制的脚本程序进行循环运行,所以VB文本框的“1”一传送到MCGS中的输入框中,就马上就被脚本程序清零。最后通过改编脚本程序解决此问题。
在最后的联机整体调试中,首先是完成实物的连接包括变频器与PLC的连接;电机与变频器的连接;PLC与电脑的连接;单片机控制板与电脑的连接。在完成了全部的电路连接后,用GX Developer通过在线的方式向PLC中写程序(此时的PLC一定是处于停止状态)和对变频器的运行模式参数Pn.79进行设置(在设置完变频器的参数后,必须将变频器关闭后再打开,这样设定才有效果)。在VB程序和MCGS上位机程序的启动先后程序是VB程序在前,MCGS上位机程序在后。因为VB是作为服务端,MCGS作为客户端。联机调试的一些情况见附录2。
由于PLC与单片机在工业控制领域的重要性,目前,全国大多数理工类大专院校机电专业都开设PLC和单片机的教学实验课。但PLC实验室与单片机实验室基本上是分开的,也就是说学生的PLC实验与单片机实验分别是在不同的实验室的专用设备上进行。这样一来,就会带来几个问题,其一是将PLC与单片机这两个在机电一体化控制系统中应用广泛的控制器,人为地分割开来,两者缺乏比照性,不利于培养全面的高素质的机电一体化人才;其二是造成实验资源的浪费。PLC实验设备与单片机实验设备各自控制一些实验对象,其中有些完全一样,如步进电机、三相异步电机等。此外,还会占用较多的实验场地。
[1] 三菱可编程控制器FX2NC系列编程手册,2001.2[2] 三菱变频调速器FR-S500使用手册,2001.3[3] 三菱FX通讯用户手册(RS-232C、RS485),2004.7[4] VISUAL BASIC帮助手册,2004.12
[5] 郑萍.现代电气控制技术[M],重庆:重庆大学出版社,2001.12
[6] 袁秀英.组态控制技术[M],电子工业出版社,2003.10
[7] 高勤.电器及PLC控制技术[M],北京:高等教育出版社,2002.6
[8] 廖常初.FX系列PLC编程及应用[M],北京:机械工业出版社,2005.4[9] 北京昆仑通态组态软件公司.MCGS用户使用手册,2003.12
[10] 张毅刚、彭喜源、谭晓钧、曲春波.MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,1997.7
[11] 张志刚.三菱FX系列PLC与变频器的RS-485通用应用[J].工业控制技术,2005(12)
[12] 张智明.基于 RS-485的变频器与PLC的通讯技术的研究 [J].现代制造工程,2005(12)59-62

我要回帖

更多关于 单片机通讯 的文章

 

随机推荐