Px>1.1Po
1#泵、阀
开
开
开
关
2#泵、阀
开
开
关
关
3#泵、阀
开
关
关
关
2、水池中水位控制在1~9米,如果超过9米则关闭电磁阀,否则打开电磁阀。
3、PLC与监控主机实现Modbus互联。
第二章系统设计
一、PLC、传感器模拟
由于缺少PLC实体设备,因此PLC下位机只能通过软件模拟实现,模拟软件为具有Modbus通讯功能的软件ModbusSlave,PLC的继电器相当于ModbusSlave软件的COILSTATUS,是一个开关量,只有0和1两种状态,MCGS上位机可以对COILSTATUS进行读、写操作。
图1.COILSTATUS,相当于PLC的继电器
同样传感器也要用该软件进行模拟,传感器向上位机发送的数据存放在ModbusSlave软件的HOLDINGREGISTER中,MCGS上位机对该寄存器进行只读操作,上位机读取数据以后根据控制要求对COILSTATUS进行写入操作,相当于控制PLC继电器的开启和关断,达到控制泵、阀的目的。
图2.HOLDINGREGISTER,存储传感器的读取值,手动输入
二、MCGS6.2通用版简介
MCGS是一套用于在计算机上快速构造和生成一套监控系统的组态软件。
MCGS通过对现场数据进行采集并处理,以一定的动画,现场流程模拟和数据输出等方式向用户实时的反应工程中的生产现象,由于节省了很多人力资源,所以MCGS在工业自动化领域有着很广泛的应用。
MCGS的主要特性和功能如下:
1.组态后的操作界面具有可视化的特点。
组态软件运用全中文,能够看见并且是面向窗口的,这一点符合我们大多数人的使用习惯。
组态过程中的最小单位是窗口,以这些窗口为单位搭建界面,所以说MCGS的组态过程很简单,而且在组态过程中也很灵活。
用户可以使用软件内部的构件,也可以自己创建需要的构件,这样就使得组态软件的拓展性很强,不拘泥与系统本身提供的架构。
2.组态完成后能实时反映系统的数据,并且具有并行处理的优异性能。
组态软件基于计算机操作系统,充分的利用了计算机的资源,使得本身在运行和处理数据时不仅实时性好而且对一些系统不同的关键任务能进行分时处理,提高了系统的精确度,由于其在计算机上运行良好,使得工业控制计算机也被大量的引进到工业领域。
另外组态软件还能和计算机连接更多的外部设备,例如打印机等,这样就可以对系统工作过程中的数据形成图纸文件。
3.组态软件拥有丰富的构件,具有搭建生动动画界面的特点。
组态软件再为工作人员提供数据的时候是通过图形、图表、文档、曲线的形式,所有这些都有助于工作人员对工程概况实时监测。
而且组态软件还能通过一些动画演示的手段来增强这种逼真的效果,使得更加接近现场控制。
组态软件还能够制作多媒体,这样就使得工程画面更加逼真。
4.组态软件拥有功能强大的网络。
组态软件支持现行的通信协议,组态软件之间可以方便的通过计算机进行通信,构成分布式的网络监控。
MCGS系统包括组态环境和运行环境两个部分。
用户所有的配置过程都是在组态环境中进行的,用户环境提供了一套完整的工具软件,用户可以根据自己的设计需要构造自己的应用系统。
用户组态完成后生成的结果是一个数据库文件,称为组态结果数据库。
运行环境自身没有什么意义,简单说只是一些构件的组合,其运行需要依赖组态结果数据库,两者相结合才能构成用户的应用系统。
组态结果生成的数据库完成了组态系统从组态环境向运行环境的过渡,两者的关系如图3所示。
图3.组态环境和运行环境的关系
MCGS生成的用户应用系统,其结构由主控窗口、设备窗口、用户窗口、实时数据库和运行策略五个部分构成。
窗口简单的说相当于一个容器,供用户使用。
在该窗口内用户可以根据自己的需要放置相应的构件或者创建自己需要的对象,并对这些对象或者构件进行不同的属性编辑和参数设置完成需要的功能。
三、RS-232近程通讯总线
串行通信接口标准经过使用和发展,目前已经有几种。
但都是在RS-232C标准的基础上经过改进而形成的。
RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。
它适合于数据传输速率在0~20000b/s范围内的通信。
这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。
由于通行设备厂商都生产与RS-232制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。
RS-232标准最初是远程通信连接数据终端设备DTE(DataTerminalEquipment)与数据通信设备DCE(DataCommunicationEquipment)而制定的。
因此这个标准的制定,并未考虑计算机系统的应用要求。
但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。
显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。
有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了
RS-232标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。
由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。
1.电气特性:
在TxD和RxD上:
逻辑1(MARK)=-3V~-15V;逻辑0(SPACE)=+3~+15V。
在RTS、CTS、DSR、DTR和DCD等控制线上:
信号有效(接通,ON状态,正电压)=+3V~+15V;
信号无效(断开,OFF状态,负电压)=-3V~-15V;
对于数据(信息码):
逻辑“1”(传号)的电平低于-3V,逻辑“0”(空号)的电平告语+3V;对于控制信号;接通状态(ON)即信号有效的电平高于+3V,断开状态(OFF)即信号无效的电平低于-3V,也就是当传输电平的绝对值大于3V时,电路可以有效地检查出来,介于-3~+3V之间的电压无意义,低于-15V或高于+15V的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)V之间。
2.DB-9连接器
在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。
它只提供异步通信的9个信号。
DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。
因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。
RS-232是异步通讯中最广泛的标准总线,适用于数据中端设备(DTE)和数据通讯设备(DCE)之间的接口。
在微机通讯中,通常使用的RS-232接口信号是九根引脚。
如图:
各引脚功能如下:
1DCD输入载波检测
2RXD输入接收数据
3TXD输出发送数据
4DTR输出数据终端就绪
5GND信号地
6DSR输入数据装置就绪
7RTS输出请求发送
8CTS输入清除发送
9RI输入振铃指示
用RS-232总线连接系统是,有近程通讯方式和远程通讯方式两种,近程通讯是指传输距离小于15米的通讯,可以用RS-232电缆直接连接。
15米以上的长距离通讯,需要采用调制调解器。
当计算机与终端之间利用RS-232作近程连接时,有几根线实现交换连接。
本次课程设计上位机和下位机均由软件模拟,所以需要两个USB接口进行互联,而Modbus设备支持RS232接口,所以USB接口和USB接口用RS-232连接的交叉图如下,图中“发送数据”与“接收数据”是交叉相连的,是得上位机和下位机都能正常的发送和接收。
发送数据(Transmitteddata-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。
接收数据(Receiveddata-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。
四、MCGS对MODBUS的支持
MCGS已经支持标准ModbusASCII、ModbusRTU、ModBusTCP协议。
凡使用标准Modbus协议的设备,包括PLC、变频器、发电机等登,MCGS均可与之建立通讯并进行数据传输。
使用Modbus驱动之前,应该仔细查阅Modbus设备的相关技术手册,并且确保设备可以和上位机建立连接并正常通讯;可以使用ModbusPoll来模拟ModbusMaster和设备通讯,检查通讯是否正常。
Modbus驱动把Modbus设备的通道分为只读,只写,读写三种情况,只读用于把设备中的数据读入到MCGS的实时数据库中,只写通道用于把MCGS实时数据库中的数据写入到设备中,读写通道则可以从设备中读数据,也可以向设备中写数据。
用户根据实际情况,进行工程组态时,可以将所需要的Modbus设备的寄存器添加为通道,在组态之中进行操作。
MCGS寄存器类型
功能
读功能码(对应Modbus)
写功能码(对应Modbus)
1输入继电器
开关量输入
2号功能码
无
0输出继电器
开关量输出
1号功能码
5号功能码下
3输入寄存器
模拟量输入
4号功能码
无
4输出寄存器
模拟量输出
3号功能码
6号功能码对于4字节数据,用10号功能码下发批写命令。
注意:
驱动中的地址和实际下发的地址相差1,即选择地址1,则下发的命令是0。
Modbus驱动支持的数据类型
MCGS数据类型代号
数据类型
Modbus数据类型
WUB
16位无符号二进制
位、整数、状态字
WB
16位有符号二进制
整数
WD
16位BCD码
整数
DUB
32位无符号二进制
位、整数、状态字
DB
32位有符号二进制
整数
DD
32位BCD码
整数
DF
32位浮点数
浮点数
通讯状态:
通讯状态值
代表意义
0
表示当前通讯正常
1
表示采集初始化错误
2
表示采集无数据返回错误
3
表示采集数据校验错误
4
表示设备命令读写操作失败错误
5
表示设备命令格式或参数错误
6
表示设备命令数据变量取值或赋值错误
第三章详细设计
一、MCGS上位机设计
1、主控窗口
工业控制中工程工作的总体构架,以及菜单命令、运行的流程显示、系统的特征参数和启动停止等控制命令存放于主控窗口中,所以说主控窗口是存放工业控制过程参数的窗口。
本次课程设计的主控窗口包括:
系统管理、数据浏览、用户管理、关于系统四项。
如图4所示。
图4.主控窗口菜单
2、实时数据库
实时数据库最主要的特征就在于它的实时性,用户在对数据完成相应的设置后经过组态软件内部管理到数据库里。
实时数据库采集来自外部设备的实时数据,系统其它部分操作的数据也来自于实时数据库。
实时数据库自发的完成对实时数据的处理,包括相应的报警处理和存盘处理等。
因此,实时数据库这时所存储的单元,不仅仅包括变量的数值,还包括变量的特征参数以及变量的操作属性。
我们将这种把数值、方法、属性等封装在一起的数据称为数据对象。
实时数据库采用类似C++的面向对象的技术,为其它部分提供相应的服务,实现了系统内部各个功能构件数据的实时共享。
实时数据库如图5所示。
图5.实时数据库
3、设备窗口(MCGS组态软件与PLC通信连接)
上位机与下位机密切配合,并保持控制对象一致。
上位机和下位机的连接主要通过MCGS下设备窗口的设置,本设计选用通用串口父设备。
如图6所示。
图6.通讯连接设备选择
在“通用串口通讯设备”中如下设置:
设备设置为“串口通讯父设备”“标准ModbusRTU设备”,注意在“串口通讯父设备”中设置好串口号(以与PLC的实际连接口来设置),通讯波特率为6-9600,数据位位数为1-8位,停止位位数为0-1位,数据校验方式为2-偶校验,数据采集方式为1-异步采集。
如图7所示。
图7.通用串口父设备属性
在“标准ModbusRTU设备”下可设置基本属性。
如图8所示。
图8.标准ModbusRTU设备基本设置
“标准ModbusRTU设备”通道连接设置。
如图9所示。
图9.标准ModbusRTU设备通道连接设置
上位机与下位机连接测试,当“通道值”第一行为0时表示连接正常。
如图10所示。
图10.设备调试
4、用户窗口
本次课程设计共有四个用户窗口分别为:
恒压供水自动监控系统、报警数据、实时数据、关于系统。
如图11所示。
图11.用户窗口
图11.恒压供水自动监控系统
图12.报警数据
图12.实时数据显示
二、下位机设置
本次课程设计采用ModbusSlave作为下位机,下位机具体设置如下图所示。
图13.ModbusSlave连接设置
图13.ModbusSlave的COILSTATUS与HOLDINGREGISTER窗口
第四章运行调试
一、调试结果
实现了从下位机输入数据然后由上位机读取,并按照控制要求对寄存器进行写入。
主控画面的动画显示全部正常。
阀、水泵的开启与关闭均符合要求。
图14.数据输入窗口
图15.实时数据显示窗口
图16.继电器的写入数据
二、心得体会
1、设备连接花了很长时间,始终出现这样或那样的错误,上位机对下位机进行读写时始终都是无返回值。
最后才发现是串口父设备的采集时间和PLC设备的采集时间不同导致的。
另外,在设备调试时上位机对下位机的数据无法进行读取,主要是由于上位机读取数据时需要读寄存器和线圈,所以只建一个窗口无法满足要求,只得再多建立一个窗口,一个设置为线圈窗口,另一个设置为寄存器窗口,这样就能避免冲突。
2、先要理解系统的真实意图,要设计的系统是从下位机往上位机发送数据,然后上位机根据策略对线圈进行读写,这些发上去的数据就相当于传感器检测到的数据,并不是上位机模拟水位和压力的变化来对下位机进行控制。
开始的时候考虑错了,用上位机对数据进行模拟,写下位机,结果走了一大圈弯路。
3、组态软件构建系统的确比普通的软件快,大大提高了系统大开发速度,尤其是工控自动化方面。
而且组态软件简单易学,应用很方便。