MCGS软件与MCS51单片机多机通信的几种方法
MCGS与PLC的通信方法
MCGS与PLC的通信方法MCGS(Machine Control & Graphic System)是一种人机界面和监控系统,而PLC(Programmable Logic Controller)则是一种可编程逻辑控制器。
MCGS和PLC可以通过多种通信方法实现数据的交互和控制指令的传输。
下面将详细介绍MCGS与PLC的通信方法。
1.RS232串口通信:RS232串口通信是一种常见的MCGS与PLC通信方式。
MCGS和PLC分别通过串口线连接,使用串口通信协议进行数据的传输。
RS232串口通信速率较低,但简单、稳定且易于实现。
2.RS485串口通信:RS485串口通信是一种多点通信方式,适用于多个PLC与一个MCGS之间的通信。
MCGS作为主站,PLC作为从站。
RS485串口通信速率较高,可实现快速数据传输。
3.网口通信:网口通信是一种基于以太网的通信方式,实现了MCGS与PLC之间的远程通信。
通过网口通信,MCGS可以连接到PLC所在的局域网或广域网,并实现数据的实时传输和控制指令的发送。
4.MODBUS通信:MODBUS是一种通用的串行通信协议,常用于MCGS与PLC之间的通信。
MODBUS可以通过RS485串口通信或网口通信实现,支持多种数据类型,包括寄存器读写、线圈状态读写等。
5. OPC通信:OPC(OLE for Process Control)是一种开放的标准,用于实现不同设备和软件之间的通信。
MCGS和PLC可以通过OPC通信实现数据的共享和交互,实现高效的生产监控与控制。
6.移动通信:随着移动互联网的普及,MCGS与PLC之间也可以通过移动通信方式实现远程监控和控制。
通过移动数据通信网络(如4G、5G等),MCGS可以连接到PLC所在的远程设备,并实时获取数据和发送控制指令。
需要注意的是,不同的通信方式适用于不同的应用场景,具体的选择应根据实际需求和系统要求进行。
此外,通信时需确保通信设备的参数设置正确,如波特率、数据位、校验位等。
MCS51系列单片机双机并行互连的实现方法
MCS51系列单片机双机并行互连的实现方法介绍了在同一系统内,MCS51系列两单片机之间采用单向并行通信接口、主从双向并行通信接口、无主从双向并行通信操作实现双机互连的方法,分析了在每一种通信接口工作方式下数据传送的特点。
在三种并行通信接口为单片机应用系统扩充硬件资源的设计提供了新的途径。
由于MCS51系列单片机具有性能稳定、工作可*、价格低廉等特点,因此其应用相当广泛。
一个MCS51系列的单片机(如Atmel89cxx)内部包含有RAM、FLASH ROM、两个或者三个16位的定时器/计数器、一个通用异步串行通信控制器(UART)等多种资源。
但即便如此,在一些相对复杂的单片机应用系统中,仅仅一个单片机资源还是不够的,因此而常常需要扩充I/O接口、定时器/计数器、串行通信接口、RAM、ROM等。
采用通用的标准器件进行扩充是通常的做法,但将单片机本身作为一个通用的扩充器件来使用,也不失为一个好的方法。
在这种情况下,一个系统中就使用了两个或两个以上的单片机,而单片机之间就要通过互连来进行数据通信。
MCS51系列的单片机(以下简称单片机)都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。
但如果系统要求扩充的资源是对外连接的串口,或对相互之间的数据传送有一定的速度要求,则单片机的串口就不能用作系统内两单片机的通信接口了。
所幸的是,单片机的并行端口也能相互连接来进行数据通信。
根据单片机端口内部结构的特点,这些端口的端口线可以直接相连,从而使两单片机之间并行通信接口的实现不用另外的硬件电路设备。
基于这种情况,设计时,可根据不同的使用要求,来采用不同的并行连接方法。
下面介绍在两个单片机之间进行三种并行通信接口的实现方法。
1 单向并行通信接口的实现在应用中,如果只需一个单片机向另一个单片机传送数据,则可以采用单向并行通信接口方式,这种方式较为简单。
图1所示为单向并行通信接口的组成方法。
MCGS与PLC的通讯
NO:
钟)
任务实施11
钟)任务一.任务要求
运用MCGS构建界面,按下界面上起动按
钮电机启动运行;按下停止,电机停止。
可能出现的问题:
1.程序编写出现问题
2.不会链接动画
3.电机不能起动
教师进行示范对整个过程进行讲解
1.建好动画
学生自己构建界面,
编写程序,
机的控制
针
行讨论
做好笔记
2.建立实时数据
3.进行数据与动画的链接
4.与PLC进行通讯明关量
5.编写程序
拓展任务.运用变频器对PLC进行控制,要求正转起动时低速,反转时高速。
1.设置变频器参数
2.构建界面
3.链接动画
4.链接PLC
5.编写程序进一步熟悉流程明确程序的编写自行完成任务。
MCGS和PLC设备的通讯的实现及例程
图24 工作台窗口
2013-7-11 32
谢谢大家!
2013-7-11
33
2013-7-11 5
图2 设备组态窗口
2013-7-11 6
单击工具栏上的 工具箱 按钮将弹出如图3所示的设 备工具箱窗口,需要说明的 是,在MCGS中PLC设备是 作为子设备挂在串口父设备 下的,因此在向设备组态窗 口中添加PLC设备前,必须 先添加一个串口父设备,当 直接用串口进行本地通讯时 ,我们添加”串口通讯父设 备”,因此双击其中的串口 通讯父设备,在设备组态窗 口中添加一个串口通讯设备 ,如图4: 图3 设备工具箱
2013-7-11
20
MCGS操作举例
我们现在以一个实验天塔之光开发一个监控制界面为例,整 体介绍一下怎样开发一个MCGS组态监控系统. I/O地址分配情况: 输入 I0.0-------启动按钮 I0.1-------停止按钮
2013-7-11
输出 Q0.0-------L1 Q0.1-------L2 Q0.2-------L3 Q0.3-------L4 Q0.4-------L5 Q0.5-------L6 Q0.6-------L7 Q0.7-------L8 Q1.0------ L9
2013-7-11 23
第二步,在实时数据库中建立如图17的实时数据对象
图17 天塔之光实例的数据对象
2013-7-11
24
第三步,如图18设置串口父设备的通讯参数.
图18 串口父设备设备属性设置对话框
2013-7-11
25
第四步,为PLC设备创建如图19所示的连接通道
图19 天塔之光实例的PLC通道
21
第一步,在图15的工作台窗口中单击”用户窗口”标签,然
组态王与单片机多机串口通信的设计方案
组态王与单片机多机串口通信的设计1 引言随着工业化要求提高,分布式系统发展以及控制设备与监控设备之间通讯需要,组态软件设计的监控系统逐步普及。
现在组态软件繁多,比如KingVieW(组态王>、MCGS、W inCC等。
KingView软件基于Microsoft Windows XP,NT/2000操作系统.具有友好的人机操作界面、强大的IO设备端口驱动能力,可与各种PLC、智能仪表、智能模块、板卡、变频器等实时通讯。
由于在检测大量模拟量的工业现场使用PLC与组态软件通讯势必增加产品成本。
而单片机接口丰富,与A/D转换模块组合可以完成相同的工作,并且系统可靠、成本低。
2 组态王与单片机的串口通讯方法目前,组态王与单片机的通信多是通过动态数据交换(DDE>或通过自己开发通讯驱动程序完成。
DDE是Windows平台上的一个完整的通信协议,组态王通过该协议与其他应用程序交换数据。
但不可靠和非实时。
而自己开发通讯驱动程序会带来设计困难,增加系统开发周期,可行性不高。
组态王专门提供一种与单片机多机串口通信方法,可满足大多数系统需求。
3 PC机与单片机的硬件接口电路图1为上位PC机与下位单片机80C51的连接电路。
PC机与单片机本身都自带串行通讯接口,但由于在分布式系统中PC机与各单片机的分布不集中,不能利用RS-232通讯传输,只能改用RS-485。
RS-485采用差分式传输信号,最大传输距离为1 219 m.最大传输速率为10 Mb/s.对同时出现的两条信号线A、B的干扰有较强的抑制能力。
当两条线绞在一起时,被通信各种分布参数耦合过来的干扰信号可平均地分配到这两条线上,因此对RS-485的差分式传输线路而言,用双绞线可获得较强的抗干扰能力。
RS-485采用二线与四线平衡传输方式,二线制可实现真正的多点双向通信,但需要在传输线上接电阻(约120 Ω>。
由于80C51系列单片机STC89C52串行接口的,TTL电气特性与RS-485电气特性不相符,STC89C52不能与RS-485直接连接,需要电气转换。
昆仑通态人机界面与单片机通信实战教程二:脚本驱动的设计
昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设计⼤家好,我是『芯知识学堂』的SingleYork,前⾯给⼤家介绍了“昆仑通态⼈机界⾯与单⽚机通信实战教程⼀:⼯程界⾯的设计”,今天笔者就要来给⼤家介绍“昆仑通态⼈机界⾯与单⽚机通信实战教程⼆:脚本驱动的设其实昆仑通态的软件也⾃带了很多标准设备的驱动,如:西门⼦PLC的驱动、三菱PLC的驱动等,直接加载驱动就可以⽤了,但是对于我们⾃⼰开发的单⽚机板的话,就需要⾃⼰编写驱动了。
⼀说到脚本驱动,⾃然就⽀持标准的modbus协议,也⽀持⾃定义协议,对于我们这些不是很复杂的设备来说,个⼈觉得,没必要去深⼊研究modbus协议,尤其是菜鸟,⾃定义协议可能会更加实⽤,所以,笔者重点给⼤家介绍“⾃动义协议”。
我们先来看⼀下,我们之前设计好的HDMI⼯程:从这个HDMI⼯程中我们可以看到,⼀共有14个输⼊状态、12个输出状态和12个输出控制,其中:14个输⼊状态可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出状态也可以⽤2个字节(BYTE),按位操作来实现状态的显⽰;12个输出控制,我们可以也可以⽤2个字节(BYTE)来按位控制,也可以⽤12个BYTE来按控制,只是按位操作来控制的话,可能操作会⿇烦⼀些,为了操作简单,我们就⽤12个BYTE来实现控制吧;这样⼀来,我们就可以制定以下通信协议:(1)触摸屏读指令(0x80:⼀次性读取多个数据)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 起始地址(2)+和校验(从长度位开始累加)从机应答(单⽚机):帧头(2)+ 长度(1)+ 功能码(1)+ 数据⼀(输⼊状态⼀:X00-X07)+数据⼆(输⼊状态⼆:X10-X17)+ 数据三(输出状态⼀:Y00-T07))+ 数据四(输出状态⼆:Y10-X17)+和校验(从例:主机发送:37 73 04 80 0000 84从机返回:5A A5 06 80 00 00 00 00 86(2)触摸屏写指令(0x81:写单个寄存器操作)格式(⼗六进制):主机发送(触摸屏):帧头(2)+ 长度(1)+ 功能码(1)+ 寄存器地址(2)+寄存器值(2)+和校验(从长度位开始累加)例:37 73 06 81 0000 0001 88写指令从机就不设置单独的返回指令了,在写完之后,可以通过读指令来查询状态来判断有没有写成功。
51单片机串口多机通信的实现和编程
51 单片机串口多机通信的实现和编程
一、51 单片机的主从模式,首先要设定工作方式3:(主从模式+波特率可变)
SCON 串口功能寄存器:SM0=1;SM1=1(工作方式3)
注:主机和从机都要为工作方式3。
【工作方式2 (SM0 SM1 :1 0):串行口为11 位异步通信接口。
发送或接收
一帧信息包括1 位起始位0、8 位数据位、1 位可编程位、1 位停止位1。
发
送数据:发送前,先根据通信协议由软件设置TB8 为奇偶校验位或数据标识位,然后将要发送的数据写入SBUF,即能启动发送器。
发送过程是由执行任何一条以SBUF 为目的寄存器的指令而启动的,把8 位数据装入SBUF,
同时还把TB8 装到发送移位寄存器的第9 位上,然后从TXD(P3.1)端口输出
一帧数据。
接收数据:先置REN=1,使串行口为允许接收状态,同时还要将RI 清0。
然后再根据SM2 的状态和所接收到的RB8 的状态决定此串行口在
信息到来后是否置R1=1,并申请中断,通知CPU 接收数据。
当SM2=0 时,
不管RB8 为0 还是为1,都置RI=1,此串行口将接收发送来的信息。
当
SM2=1 时,且RB8=1,表示在多机通信情况下,接收的信息为地址帧, 此时
置RI=1,串行口将接收发来的地址。
当SM2=1 时,且RB8=0,表示在多机通
信情况下,接收的信息为数据帧, 但不是发给本从机的,此时RI 不置为1,。
单片机与昆仑通态通讯
/***********************************************备注:modbus RTU协议,rs485通讯单片机为从机PLC或者PC为上位机*********************************************/#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit rx_led=P0^0;//接收指示灯sbit tx_led=P0^1;//发送指示灯sbit ctrl_485=P3^2;//485接发发送转换控制sbit dm=P1^4;sbit wm=P1^5;sbit led_cs=P1^6;sbit b7=P2^7;//波特率设置位unsigned int crc=0;uchar sendBuf[20],receive_count=0,a[10];uchar send_count= 0,send_num=0,addr_dip=0;uchar aaa,bbb;uint crc16(unsigned char *puchMsg, unsigned int usDataLen);void beginsend(void);void check_modbus(void);void display(uint date);void delay(uint z);uchar code duan[]={0x3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71 };//此数组为!!! 0~9 A B C D E F !!!uchar code wei[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};//此数组表示数码管显示的位数void display(uint date) //num 表示在第几位显示words 表示显示的字符{P2=duan[date/100];P1=wei[0];delay(1);P1=0xff;P2=duan[date%100/10];P1=wei[1];delay(1);P1=0xff;P2=duan[date%10];P1=wei[2];delay(1);}/*************延时*****************/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=113;y>0;y--);}/************串口初始化*****************/ void uart_init(void){TMOD=0x20;//定时器1,模式2SCON=0x50;//串口通讯方式1TH1=0xfd;//波特率9600TL1=0xfd;if(b7==1)PCON=0x00;elsePCON=0x80;TI=0;//发送中断标志位清零RI=0;//接收中断标志位清零TR1=1;//启动定时器1EA=1;ES=1;}/**************定时器0初始化**************/ void timer0_init(void){TMOD=TMOD&0xf0;TMOD=TMOD|0x01;TH0=0; //16位定时计数器TL0=0;ET0=1; //允许定时器中断}void main(void){dm=0;wm=0;led_cs=1;uart_init();timer0_init();ctrl_485=0;//先置为接收while(1){RI=0;delay(1);rx_led=1;tx_led=1;if(P2^0==0)bbb++;if(bbb==10)aaa++;display(aaa);}}void beginsend(void){ctrl_485=1; //开始置位发送状态 TI=0;send_count = 0;SBUF = sendBuf[0];send_num--;}void time0() interrupt 1///定时器中断{TR0=0;RI=0;check_modbus();receive_count=0;}void ser() interrupt 4{if(TI){if(send_count < send_num){TI=0;tx_led=0;SBUF = sendBuf[++send_count]; }else{receive_count=0;ctrl_485=0;TI=0;}else if(RI){RI=0;rx_led=0;TR0=1;a[receive_count++]=SBUF;TH0=0xf4;TL0=0x1e;}}void check_modbus(void){uchar di,addr;if(receive_count>7)////////////////////address 03 00 00 00 01 crc crc{receive_count=0;crc=crc16(a,6);addr=1; //仪表栈号设置为1// addr=P2>>4;// addr=~(addr&0x0f);// addr=addr&0x0f;// di=~(P2&0X0f);// di=di&0x0f;di=aaa;if(a[0]==addr&&a[1]==0x03&&(crc==((a[7]&0x00ff)|(0xff00&(a[6]<<8))))) {sendBuf[0]=a[0];sendBuf[1]=a[1];sendBuf[2]=0x02; //数据长度为2sendBuf[3]=0x00;//数据高八位为0sendBuf[4]=di; //数据低八位为P2口数据crc=crc16(sendBuf,5); //计算5个数据的CRC校验码sendBuf[5]=crc>>8;sendBuf[6]=crc&0xff;send_num=7;beginsend();}}}/***********************CRC校验*************************/ // CRC 高位字节值表unsigned char code auchCRCHi[260] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40} ;// CRC低位字节值表unsigned char code auchCRCLo[260] = {0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,0x43, 0x83, 0x41, 0x81, 0x80, 0x40} ;unsigned int crc16(unsigned char *puchMsg, unsigned int usDataLen) {unsigned char uchCRCHi = 0xFF ; //* 高CRC字节初始化unsigned char uchCRCLo = 0xFF ; //* 低CRC 字节初始化unsigned long uIndex ; // CRC循环中的索引while (usDataLen--) // 传输消息缓冲区{uIndex = uchCRCHi ^ *puchMsg++ ; // 计算CRCuchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;uchCRCLo = auchCRCLo[uIndex] ;}return (uchCRCHi << 8 | uchCRCLo);}。
MCGS和PLC连接
图10 增加通道对话框
单击通道类型下拉列表框的下拉按钮,选择”Y输出继电 器”,输入通道地址,选择数据位的位数,这里通道地址是指字 节或字地址(因PLC机型而异),数据位的位数是指该字节右字 下的第几位,如图10为选择Y0.0,然后选择操作方式,单击”确 认”按钮回到PLC通道属性设备对话框,如图11
24
第24页/共33页
第四步,为PLC设备创建如图19所示的连接通道
图19 天塔之光实例的PLC通道
2021/3/31
25
第25页/共33页
第五步,为PLC通道和实时数据对象建立连接
图20 天塔之光实例通道连接窗口
2021/3/31
26
第26页/共33页
第六步,为动画构件建立动画连接
双击L1灯,在弹出的动画组态属性设置对话框,在“特殊动 画连接”栏中的”可见度”复选框,这时将出现“可见度” 选项卡,单击它将出现如图22的可见度动画设置对话框.
图3 设备工具箱
2021/3/31
6
第6页/共33页
图4 向设备组态窗口添加串口通讯父设备
现在就可以向设备组态窗口中添加我们所需的 PLC设备了,如果所需设备没有出现在设备工具箱中 ,请按下“设备管理”按钮,在弹出的设备管理对话 框中选定所需的设备,然后双击就可以将它添加到设 备工具箱中,如图5:
2021/3/31
1
第1页/共33页
需要注意的几个问题
1、如何实现MCGS和PLC设备的联接? 2、怎样对PLC中的数据进行读写? 3、怎样把从PLC读来数据与监控界面中的
动画建立起连接?
2021/3/31
2
第2页/共33页
一、MCGS和PLC设备的联接
在MCGS系统中,由设备窗口负责建立系 统与外部硬件设备的连接,使得MCGS能从 外部设备读取数据并控制外部设备的工作状 态,实现对应工业过程的实时监控。因此 MCGS与PLC设备的联接是通过设备窗口 完 成的,具体操作如下:
基于MCGS的51单片机驱动构件实现方法
第30卷第11期2009年11月微 计 算 机 应 用M I CROCOMP UTER APP L I CATI O NSVol130No111Nov12009基于M CGS的51单片机驱动构件实现方法周 杰1 林沂杰2(1扬州工业职业技术学院 扬州 225127 2中国船舶重工集团第723研究所 扬州 225002)摘要:为了解决组态软件MCGS与所用特殊硬件设备通信的问题,利用MCGS的高级开发工具包生成源程序框架,根据所要实现的通信功能完成了源程序框架中方法接口和属性接口的设计,并详细叙述了各方法接口和属性接口的实现过程,完成了与所用单片机相匹配的子设备驱动构件的开发。
通过测试与挂接,实现了MCGS与AT89S51单片机的通信。
关键词:M CGS 组态软件 驱动构件 单片机The Rea li za ti on of D r i ve co m ponen ts of M CS-51M i crocon troller Ba sed on the M CGSZ HOU J ie1,L I N Yijie2(1Yangzhou Polytechnic institute,Yangzhou,225127,China;2China Shi pbuilding Heavy I ndustry Gr oup No1723Research I nstitute,Yangzhou,225127,China)Abstract:t o s olve the matching p r oblem of configurati on s oft w are MCGS and its s pecial hard ware driver,a fra me work of s ource p r o2 gra m is built fr om advanced devel opment wizard ofMCGS,and the design of attribute interface and method interface in the s ource p r o2 gra m is accomp lished in accordance with intended communicati on functi on1The thesis elaborates the design of attribute interface and method interface,and comp letes the devel opment of SC M driver-component1The communicati on bet w een MCGS and S C M-51m i2 cr ocontr oller is achieved tr ough testing and articulati on of cust om single-chi p components1Keywords:MCGS,configurati on s oft w are,drive components,m icr ocontr oller组态软件MCGS(Monit or and Contr ol Generated Syste m)提供了大多数常用硬件设备的驱动,然而在实际应用中对于特殊的硬件设备,MCGS的驱动就不能满足要求。
mcgs怎么用网口和plc通讯
mcgs怎么用网口和plc通讯随着工业自动化的不断发展,人机界面(MMI)在工业领域的应用越来越广泛。
而MCGS(触摸屏软件)作为一款高性能的人机界面软件,使用方便且功能强大,备受工程师们的喜爱。
在很多工业控制系统中,需要通过网口与PLC(可编程逻辑控制器)进行通讯。
本文将详细介绍MCGS如何使用网口和PLC进行通讯,并探讨其中的一些技巧和注意事项。
1. 网口通讯的基本原理在人机界面与PLC之间进行通讯时,通常采用Modbus TCP/IP或以太网IP通讯协议。
而网口通讯的基本原理就是通过网线将人机界面与PLC连接在一起,并通过共享统一的通讯协议来实现数据的传递和交换。
这种通讯方式具有传输速度快、稳定可靠的特点,适用于大部分工控系统。
2. MCGS网口通讯的配置步骤在MCGS软件中,配置网口通讯需要以下几个步骤:2.1 打开MCGS软件并创建项目首先,打开MCGS软件,并创建一个新的项目。
在新建的项目中,可以设置界面样式、画面布局等。
2.2 添加页面元素接下来,添加页面元素,包括文本、按钮、图形等,用于显示和交互控制。
2.3 配置PLC通讯参数在MCGS软件中,通过选择网口通讯的设备类型和PLC型号,来配置PLC通讯参数。
通常需要指定PLC的IP地址、端口号等信息。
2.4 设定通讯对象在PLC通讯参数配置完成后,需要设定通讯对象。
通讯对象可以是PLC的寄存器、位开关等,用于读取或写入数据。
2.5 编写通讯逻辑最后,根据实际需求编写通讯逻辑。
可以使用Ladder(梯形图)编辑器或脚本语言(如VBScript)编写通讯逻辑,实现数据的读取和控制。
3. 网口通讯的常见问题和技巧在使用MCGS进行网口通讯时,可能会遇到一些常见的问题。
以下是一些解决问题的技巧和注意事项:3.1 网络连接问题在进行网口通讯之前,确保MCGS设备和PLC设备通过网线正确连接,并且网络通畅。
如果通讯中断或数据传输异常,可以检查网线是否连接松动、IP地址设置是否正确等。
MCGS平台下51单片机驱动构件开发与应用
23 属性接 口 .
MC S G 提供 的接 口规 范 中共有 5个 属性 接 口, 编
程者可通过 调用 属性 接 口函数 来对 设备 属性 进行 设
置 。通过设置这 5个 属 性 , 以标 明设 备 的类 型、 可 类 别、 设备的通道个 数 、 设备所用 IO地址 的个数和设备 / 所用 IO的基地址 。由于 是子设 备 , / 故单 片机驱 动构
用于 自动控制系统 的监控层 , 其灵活 的组态 方式 , 可使
用户快速构建专业级 的工业 自动监控 系统 。 工控组 态 软件 是 一套 基 于 Wi o sT 20 / P n wN /00 X d 操作系统 、 可用来快速 构造 和生成 上位机 监控 系统 的
MC S中 , 构成 一个 整体 。由于设 备驱 动 构件 和 G 使其
套接 口规范 , 只有 遵守 这些接 口规 范 的 A t e L , c vD L 才 i 能用 作 M G 的 设 备 驱 动 构 件。具 体 来 说 , 发 CS 开 M G 设备驱动构件 的过程就是根据通 信协议 制定 的 CS
数据帧格式 , MC S接 口规 范 中的 5个 属性 函数和 对 G 8 方法 函数进行 定义 、 个 编程 、 试和挂 接 , 而完成 调 从
D v h ne : 7 eC anl
/ 标 明设备类别 为与 串 口 / 父设备对应的子设 备 , 0为独立 设备 / 标明设备 的通道个数为 7 / 个
D v/ON mb r = 0 eI u e
De Ba e/0 = 0 v sI
的是前一种方法 。 2 1 通信协议与数据格式 .
昆仑通态MCGS软件与欧姆龙PLC串口连接通讯的方法
MCGS软件与OMRON PLC通过串口连接通讯的方法
1、在工作台上,打开设备窗口
在系统菜单选择“查看――设备工具箱”,打开设备工具箱,点击“设备管理”按钮;
将通用串口父设备及欧姆龙HostLink设备添加到选定设备栏中,确认退出;
将设备工具箱内的通用串口父设备及OMRON设备添加到设备窗口中,如下图所示:注意,这里表示是OMRON PLC通过串口连接到计算机的串口下。
双击打开通用串口父设备0,进行串口通讯参数设置。
注意,数据采集方式中,同步采集是指串口下挂的各个设备全部采用父设备的采集周期,异步采集是指各自设备采用自己的采集
周期。
建议下挂多个子设备时,采用异步采集方式。
在串口父设备中,需要设置串口号/通讯波特率/数据位/停止位/数据校验方式等设置选项。
双击打开设备0(欧姆龙HostLink),可以选择在线帮助项的按钮来查看OMRON设备帮助。
帮助中有详细的构建功能说明。
连接通道,如下:
在设备调试页中,进行通讯测试,如果通讯状态标志的值为0,则表示设备已经正常通讯,可以在运行画面中进行操作了。
昆仑通态MCGS连接宇电仪表通讯教程
厦门宇电仪表和MCGS组态通讯教程目录厦门宇电仪表和MCGS组态通讯教程 (1)增加设备 (1)串口通讯参数设置 (3)增加宇光智能仪表驱动 (3)驱动参数设置 (4)连接实时数据库变量 (7)窗口模拟测试 (8)常见问题: (9)本教程连接的厦门宇电仪表是AI-516AGS, 走的宇电AIBUS协议和MCGS通讯。
增加设备首先新建工程切换到设备窗口,双击进入设备窗口在设备工具箱中可以看到很多的通讯驱动,如果没有找到需要的驱动可以点击设备管理按钮,在设备管理中添加需要的设备驱动,工具箱中如果已经有了可以直接双击对应设备即可添加。
要和厦门宇电仪表通讯走的是串口通讯,由于MCGS本身带有厦门宇电的通讯驱动,协议是宇电的自家协议AIBUS协议,所以直接在设备管理添加驱动就可以建立通讯了,首先添加一个【通用串口父设备】,然后在串口父设备下添加【宇光智能仪表】双击通用串口父设备添加到设备窗口中,右键通用串口父设备选择属性串口通讯参数设置在属性中设置串口通讯格式,宇电仪表的格式是数据位8,无校验,停止位1,波特率仪表上参数(baud)可以设置,这里设置9600,串口号对应连接的485口的端口。
设置好后点击确认。
增加宇光智能仪表驱动下面开始添加宇电仪表驱动(宇光智能仪表),如果设备工具箱中没有宇光智能仪表驱动,进入设备管理中找到仪表类添加宇光智能仪表确认添加,然后在设备工具箱就可以看到宇光智能仪表驱动了,双击它即可添加到串口父设备下。
以上添加的设备0就是对应宇电仪表一个地址,如果有多个地址就添加多个,在设备内参数可以设置对应连接的设备地址。
驱动参数设置双击新添加的设备进入设备编辑窗口,设备地址对应要连接仪表的地址Addr, 本例子连接的宇电仪表地址为1,默认创建好的设备有4个变量V1~V4,V1~V4变量都是只读的变量,对应含义分别为测量值PV,设定值SV ,输出值MV ,报警状态。
如果要添加可写入的设定值要在【内部属性】中进行添加,添加方法往后看。
51多机电路
51单片机的多机通信[日期:2008-05-05 ] [来源:net 作者:佚名] [字体:大中小] (投递新闻)在单片机多机通信过程中,PC机将指令打包后发给智能接口单元(以下简称主单片机)。
主单片机收到完整一包后将包解开,按对每个从机的指令分别发送,同时将各从机发给PC机的指令送给PC机。
由于64个从机和主单片机使用同一串口通信线,为避免发生冲突,主单片机处于主动状态,按一定的定时间隔与每一台从机顺序通信。
主单片机在与每一台从机通信过程中先发送地址,从机收到地址后若与自己的地址一致,则继续接收主单片机发来的一个字节的命令码,从机收到命令后,将自己的一个字节的命令发送到主单片机。
主单片机完成与64个从机的通信需要64个定时间隔,只要定时间隔足够短,主单片机与从机基本上可以实现实时通信。
在整个通信过程中,主单片机起着通信枢纽的作用。
单片机多机通信过程安排如下:使所有从机的SM2位置1,处于只接收地址帧的状态;主机发送一帧地址信息,其中包含8位地址,第9位为地址、数据标志位,第9位置1表示发送的是地址;从机接收到地址帧后,各自将所接收的地址与本从机的地址相比较,对于地址相符的从机,使SM2清0以接收主机随后发来的信息,对于地址不相符的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬,直至发送新的地址帧;主机发送控制指令与数据,给被寻址的从机数据帧的第9位置0,表示发送的是数据。
�单片机程序采用PLM51语言设计,主单片机定时中断服务程序框图如图4所示。
主单片机RS-485串行口接收和发送中段服务程序框图如图5所示。
主单片机RS-232C串行口接收中断服务程序如图6所示。
从单片机RS-485串行口接收和发送中段服务程序框图如图7所示。
主单片机在主程序中以查询方式将各从机送来的数据从内存中读出后顺序发送给上位PC机。
程序清单略。
图1 RS485通信接口原理图2 单片机多机通信硬件电路设计中需注意的问题2.1 电路基本原理某节点的硬件电路设计如图1所示,在该电路中,使用了一种RS-485接口芯片SN75LBC184,它采用单一电源Vcc,电压在+3~+5.5 V范围内都能正常工作。
MCGS软件与MCS51单片机多机通信的几种方法
MCGS软件与MCS51单片机多机通信的几种方法Multi-machineSerialCommunicationMethodbetweenConfigurationSoftwareMCGSandMCS51SCMLia oningMechanicAndElectricityProfessionTechnologyAcademyInformationInstrumentliu naPostcode:118002[摘要]MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。
在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MC Multi-machine Serial Communication Method between Configuration Software MCGS and MCS51 SCM Liaoning Mechanic And Electricity Profession Technology Academy Information Instrument liuna Postcode:118002[摘要] MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。
在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCGS远程监控,充分利用计算机的资源进行各种管理。
那么对于MCGS与MCS51单片机多机组成的系统如何设计其通信方式,本文介绍几种工程中可用的通信方法。
[abstract] MCGS is the normal industry configuration software. We can use it to consist apicture of DCS system , it can display the device’s dynamic moving state, the moment 、history curves and reports、high and low alarm。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MCGS软件与MCS51单片机多机通信的几种方法Multi-machineSerialCommunicationMethodbetweenConfigurationSoftwareMCG SandMCS51SCMLiaoningMechanicAndElectricityProfessionTechnologyAcademy InformationInstrumentliunaPostcode:118002[摘要]MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。
在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCMulti-machine Serial Communicat io n Method between Configuration Software MCGS and MCS51 SCM Liaoning Mechanic And Electricity Profession Technology Ac ad emy Information Instrument liunaPostcode:118002[摘要] MCGS是目前较常见的一种工业控制通用组态软件,可以利用它十分方便地构成了分布式系统的监控画面,动态显示控制设备的运行状态、实时、历时曲线和报表、上下限报警等。
在该系统中对于由多个MCS51单片机控制的下位机仪表,其工作由MCGS远程监控,充分利用计算机的资源进行各种管理。
那么对于MCGS与MCS51单片机多机组成的系统如何设计其通信方式,本文介绍几种工程中可用的通信方法。
[abstract] MCGS is the normal industry configuration software. We can use it to consist apicture of DCS system , it can display the device’s dynamic moving state, the moment 、history curves and reports、high and low alarm。
In the system more MCS51 SCM is under control, the MCGS remote control the SCM, the method can use the pc’s source to manage the matter. So how to design multi-machine serial communication method between configuration software MCGS and MCS51 SCM, the article introduce some communication method.[keywords] Configuration Software VB SCM multi –machine Serial Communication Fuction OLE一、引言在工业控制领域中,分布式监控系统常常采用计算机机为上位机、单片机做下位机的系统,这是一种经济、可靠、真观、合理的控制方式。
组态软件MCGS是目前较常见的一种工业控制通用组态软件,是开发工程一非常有效的上位机工具软件,下位机采用单片机来开发的仪表,则具有计量精度高,功耗低,稳定可靠,成本低等特点。
组态软件MCGS与MCS51单片机的通迅方法一般有三种:一、单片机通过PLC、采集板卡、智能模块等设备实现通信;二、通过采用VB编制通信服务程序,利用串口通讯控件与单片机进行多机通信, 利用OLE功能在服务程序和MCGS之间进行数据交换,从而实行了MCGS与单片机的多机通信。
;三、通过使用MCGS嵌入版的串行口通迅函数进行PC机与单片机多机通信。
前者实现简单,只需对的PLC或板卡做相应的设置即可;而后两种经济实用,省去了PLC、板卡、智能模块等设备,节约了资金,但是需要有一定的编程知识。
二、通信方法1. PLC、板卡、智能模块方式本文的实例为PC上位机与一级下位机OMRON系列PLC的通信。
它与计算机之间的通信采用的是串行通信。
PLC是以微处理器为基础,综合自动控制技术和通信技术发展起来的一种通用的工业自动控制装置,它具有体积小,功能强,程序设计简单,灵活通用,维护方便等一系列的优点,特别是它的高可靠性和较强的适应恶劣工业环境的能力,使它成为大规模控制工程的理想下位机。
OMRON系列中型PLC有SYSMAC C200HX系例,拥有多种接口数字量输入,数字量输出,模拟量输入,模拟输出等,它带有两个RS-232接口,可通过RS-232C /RS-485转接器,挂在RS-485总线上,上位机PC通过转换器与总线相连,即构成具有分布式控制系统的远传数据采集网,其它仪表设备,只要是标准串口都可以类似方式直接或间接与系统连接。
在组态软件MCGS中,欧姆龙PLC设备必须挂接在串口父设备下,串口父设备在“通用设备”目录中。
串口父设备用来设置通信参数和通信端口。
通信参数必须设置成与PLC的设置一样。
否则就无法通信。
欧姆龙PLC常用的通信参数:波特率9600,2位停止位,偶校验,7位数据位。
通迅的主动权在上位计算机,通信时必须由计算机按要求向PLC的HOST LINK 发出通信命令,然后才能由HOST LINK送回响应信号。
2. 自制控件的OLE方式MCGS用Active DLL构件的方式来实现设备驱动程序,通过规范的OLE接口挂接到MCGS中,使其构成一个整体,所以MCGS把设备驱动程序叫做设备驱动构件。
由于设备驱动构件和MCGS运行在同一个进程内,故设备构件的运行速度快,可靠性高,不存在传统DD E方式连接设备驱动时的数据流通不畅和数据传输速度慢等问题。
同时,OLE是一个可扩充的开放标准,用于实现不同软件之间的相互操作,而不管软件本身是使用什么编程语言。
因此,只要遵守MCGS的接口规范,可以使用VB、VC、Delphi等语言来编制MCGS的设备驱动程序。
鉴于Visual B as ic 通用性和简单性,可以使用VB来开发MCGS的设备驱动程序.由于VB5.0以上版本是以二进制码来编译执行程序,其运行速度已接近VC,完全能满足设备驱动构件所需的速度要求。
MCGS设备构件的实现方法和原理与标准VB的ActiveDLL完全一致,但MCGS 规定了一套接口规范,只有遵守这些接口规范的ActiveDLL才能用作MCGS的设备驱动构件。
MCGS设备驱动构件必须具有如下5个属性和8个方法:属性:DevType 标识设备的类型属性:DevStyle 标识设备的类别属性:DevChannel 标识设备的通道个数属性:DevBaseIO 标识设备所用IO的基地址属性:DevIONumber 标识设备所用IO地址的个数方法:GetDevName 读取设备构件类型名称方法:GetDevHelp 调用设备构件的在线帮助内容方法:SetDevPage 调用设备的内部属性页方法:InitNewDev 初试化设备的初始值方法:GetChlType 读取设备构件各通道的数据类型和注释方法:InitDevRun 运行时对设备进行初始化工作方法:RunDevCommand 执行指定的设备命令方法:CollectDevDat 定时操作设备,采集或输出数据开发MCGS设备驱动的过程,实际上就是根据设备的特性和含义来完成8个方法功能的编程过程。
编写通讯子设备驱动程序时,主要使用的就是对串行端口进行操作。
MCGS根据驱动程序的实现特点,充分运用32操作系统多任务多线程的优势,把复杂的对串行端口的设置、初始化和读写操作全部封装在MCGS提供的串行通讯父设备中,在通讯子设备驱动程序中只需调用父设备提供的标准串口读写函数,即可完成各种功能通讯子设备驱动程序的开发编程工作。
常用的函数有:ComOutDat、ComAllInDat、ComOutInDat等。
下面以一个5个通道的接口卡为例,接口卡的跳线设置为:单端输入、0~5V输入量程、数码转换方式为单极性,要求本设备构件能对5个通道的数据进行采集。
利用MCGS的高级开发向导,生成一个独立设备驱动设备的源程序;假定工程名设为:MYPROGRAM,类型名设为:我的工程;把属性DevChannel中的值改为5;把接口GetChlType 中的代码改为:Dim i As LongFor i = 0 To 4Dat(i) = 2msg(i) = "AD输入"+format$(I+1,”0”)Next i在接口CollectDevDat中编制如下程序代码:Dim i as Long, high as Long, l ow as LongFor i=0 to 4Outp mHandle, DevBaseIO, i ‘设置AD通道Outp mHandle, DevBaseIO+1, 0 ‘启动AD转换Do ‘等待AD转换结束If Inp(mHandle, DevBaseIO + 2) < 128 Then Exit DoLoophigh = Inp(mHandle, DevBaseIO + 2) And &HF‘读高4位low = Inp(mHandle, DevBaseIO + 3) ‘读低8位dd(i) =( h * 256 + l)*5000/4096 ‘转换为mV数Next i编译工程,得到DLL文件MYPROGRAM.dll,把该文件拷贝到MCGS的program\drivers目录下,即可完成本设备构件的编程工作。
设备只需连在相应的串行口既可。
在MCGS组态环境中,即可在设备管理窗口中使用新开发的设备。
计算机串行口是计算机和其它设备通讯时最常用的一种通讯接口,一个串行口可以挂接多个通讯设备(如一个RS485总线上可挂接255个ADAM通讯模块,但它们共用一个串口父设备),为适应计算机串行口的多种操作方式,MCGS组态软件特采用在串口通讯父设备下挂接多个通讯子设备的一种通讯设备处理机制,各个子设备继承一些父设备的公有属性,同时又具有自己的私有属性。
在实际操作时,MCGS提供一个串口通讯父设备构件和多个通讯子设备构件,串口通讯父设备构件完成对串口的基本操作和参数设置,通讯子设备构件则为串行口实际挂接设备的驱动程序。
将下位机单片机仪表设备组成单片机主从形式的多机通迅网络,然后将负责采集数据的主机单片机通过RS485总线连接到上位机PC的RS232接口,通过串行口通信方式将数据远传送到上位机,这样可以用计算机直接对远端仪表设备进行数据采集、检测、控制、诊断和故障调试等。