我没看到你的,所以不能全解答。
关于PLC与MCGS通讯的问题, 其中MCGS支持SIEMENS 200PLC
MCGS 55支持以下典型PLC设备:
西门子S7_200(自由口、PPI接口)、S7_300(MPI接口、Profibus接口)、S7_400(MPI接口、Profibus接口);
莫迪康Modbus-RTU协议、Modbus-ASCII协议、Modbus-Plus协议、Modbus-TCP协议;
欧姆龙ControlLink协议、Ethernet协议、HostLink协议;
三菱FX系列、AnA系列、A系列、Q系列;
松下FP0~FP10系列;
台达SC500/OMC-1系列、Open_PLC XC_2000系列;
LG系列;
GE SNP协议、TCP/IP协议;
AB全系列;
富士NB系列;
和利时全系列;
光洋CCM协议、KS协议;
台达系列;
日立系列。
我们以西门子S7200PLC为例,使您了解硬件设备与MCGS组态软件是如何连接的。具体 *** 作如下:
在MCGS组态软件开发平台上,单击“设备窗口”,再单击“设备组态”按钮进入设备组态。从“工具条”中单击“工具箱”,d出“设备工具箱”对话框。单击“设备管理”按钮,d出“设备管理”对话框。从“可选设备”中双击“通用设备”,找到“串口通讯父设备”双击,选中其下的“串口通讯父设备”双击或单击“增加”按钮,加到右面已选设备。再双击“PLC设备”,找到“西门子”双击,再双击“S7-200-PPI”,选中“西门子S7-200PPI” 双击或单击“增加”按钮,加到右面已选设备
单击“确认”按钮,回到“设备工具箱”如图:
双击“设备工具箱”中的“串口通讯父设备”,再双击“西门子S7-200PPI”,如图:
双击“设备1-[串口通讯父设备]”,d出“设备属性设置”对话框,如图按实际情况进行设置,西门子默认参数设置为:波特率9600,8位数据位,1位停止位,偶校验。参数设置完毕,单击“确认”按钮保留。如果是首次使用,请单击“帮助”按钮或选中“查看设备在线帮助”,单击 图标,打开“MCGS帮助系统”,详细阅读。
计算机串行口是计算机和其它设备通讯时最常用的一种通讯接口,一个串行口可以挂接多个通讯设备(如一个RS485总线上可挂接255个ADAM通讯模块,但它们共用一个串口父设备),为适应计算机串行口的多种 *** 作方式,MCGS组态软件采用在串口通讯父设备下挂接多个通讯子设备的一种通讯设备处理机制,各个子设备继承一些父设备的公有属性,同时又具有自己的私有属性。在实际 *** 作时,MCGS提供一个串口通讯父设备构件和多个通讯子设备构件,串口通讯父设备构件完成对串口的基本 *** 作和参数设置,通讯子设备构件则为串行口实际挂接设备的驱动程序。
S7-200PPI构件用于MCGS *** 作和读写西门子S7_21X、S7_22X 系列PLC设备的各种寄存器的数据或状态。本构件使用西门子PPI通讯协议,采用西门子标准的PC\PPI通讯电缆或通用的 RS232/485转换器,能够方便、快速地与PLC通讯。
双击[西门子S7-200PPI],d出“设备属性设置”对话框,如图,在属性设置之前,建议您先仔细阅读“MCGS帮助系统”,了解在MCGS组态软件中如何 *** 作西门子S7-200PPI。
选中“基本属性”中的“设置设备内部属性”,出现 图标,单击 图标,d出“西门子S7-200PLC通道属性设置”对话框。如图:
单击“增加通道”,d出“增加通道”对话框,如图,设置好后按“确认”按钮。
西门子S7_200 PLC设备构件把PLC的通道分为只读,只写,读写三种情况,只读用于把PLC中的数据读入到MCGS的实时数据库中,只写用于把MCGS实时数据库中的数据写入到PLC中,读写则可以从PLC中读数据,也可以往PLC中写数据。当第一次启动设备工作时,把PLC中的数据读回来,以后若MCGS不改变寄存器的值则把PLC中的值读回来。若MCGS要改变当前值则把值写到PLC中,这种 *** 作的目的是,防止用户PLC程序中有些通道的数据在计算机第一次启动,或计算机中途死机时不能复位,另外可以节省变量的个数。
另外,在通道连接属性页中还可以根据需要设置相应的虚拟通道。虚拟通道是实际硬件设备不存在的通道,为了便于处理中间计算结果,并且把MCGS中数据对象的值传入设备构件供数据处理使用,MCGS在设备构件中引入了虚拟通道的概念。在增加模拟通道时需要设置好设备的数据类型、通道说明(是用于向MCGS输入数据还是用于把MCGS中的数据输出到设备构件中来)
“通道连接”如图设置:
在“设备调试”中就可以在线调试“西门子S7-200PPI”,如图:
如果“通讯状态标志”为0则表示通讯正常,否则MCGS组态软件与西门子S7_200 PLC设备通讯失败。如通讯失败,则按以下方法排除:
1、 检查PLC是否上电。
2、 检查PPI电缆是否正常 。
3、 确认PLC的实际地址是否和设备构件基本属性页的地址一致,若不知道PLC的实际地址,则用编程软件的搜索工具检查,若有则会显示PLC的地址。
4、 检查对某一寄存器的 *** 作是否超出范围。
其它设备如板卡、模块、仪表、PLC等,在用MCGS组态软件调试前,请详细阅读硬件使用说明与MCGS在线帮助系统。
44 网络数据同步
网络数据同步是用来实现在网络系统中,对各主机上MCGS的实时数据对象进行同步处理,使网络上各主机中的实时数据保持一致性。
网络数据同步设备是一个子设备,它必须位于一个网络父设备中,通过父设备(高速网络:TCP/IP、低速网络:Moxa、低速网络:Modem)来完成数据的网络通讯工作。
在设备窗口中添加一个网络父设备,高速网络TCP/IP、低速网络Moxa或低速网络Modem,正确设置后,确认网络测试正常。
打开设备工具箱,若网络数据同步设备在设备工具箱的话,双击,将它添加到设备窗口中网络父设备下;若设备工具箱中没有,点击设备管理,从通用设备中将网络数据同步设备添加到设备工具箱中。据以下提示设置设备构件属性,即可使用。
双击“设备工具箱”中的“网络数据同步”设备,如图:
(一)基本属性页中,可以设置本设备在MCGS中的名称、处理周期等基本属性以及同步通道的个数等。
设备名称:本构件的名称,远程工作站中使用该名称来和本构件进行通讯;
处理周期:MCGS循环调用本构件进行网络同步通讯的时间周期;
运行时自动开始处理:如果选择了本选项,运行时,MCGS将按设定的周期调用本构件。如本构件只提供服务,响应其它主机的请求,则不选择本项,也就是说,数据接收方通常不选择此选项;
远程目标设备名:指定本设备构件要和远程主机中进行通讯的设备构件的名称。如本构件只提供服务,则可以不设置本项;
通道个数:要同步的数据对象的个数;
网络工作状态:检测网络的工作状态,若网络通讯正常,连接的数据对象的值被置为1,不正常则置0;
设置远程工作站时间:以本机工作站的时间为基准时间设置远程工作站的时间;
设置本地工作站时间:以远程工作站的时间为基准时间设置本机工作站的时间。
(二)通道连接和设置
通道连接和设置属性主要用以设置同步数据对象及其相关属性。如图:
本机对象名:本机要同步的MCGS数据对象;
远程对象号:远程目标设备要同步的数据对象对应的通道号;
类型:要同步的MCGS数据对象的类型,有开关型、数值型和字符型;
方向:有“输入”和“输出”两种选择,“输入”代表从远程工作站中读入同步对象的值,同步到本机的MCGS对应的数据对象;“输出”代表从本机中读取要同步的MCGS数据对象的值,同步到远程工作站的对应MCGS数据对象中。
以上就是通过网络数据同步构件来介绍网络数据同步的实现方法的。网络数据同步即可以适用于MCGS通用版和网络版,也适用于MCGS嵌入版,并且也可以在这三个版本中相互使用。下面通过具体介绍“双机热备”实现方法,来描述网络数据同步的工作原理
1、通过MCGS嵌入式组态环境进行简易界面搭建首先创建了四个数值型和四个开关量型数据,如下图所示:MCGS嵌入式组态环境图2、数值型属性编辑界面:MCGS属性设置图3、开关量型数据属性编辑界面MCGS动态属性设置图1MCGS动态属性设置图24、MCGS的设备管理中通用串口父设备的属性编辑MCGS串口设备属性编辑图5、串口协议选用MCGS中自带的modbus串口数据转发设备,设备属性如下:modbus串口设备属性图6、GPRS-DTU通过RS485或者RS232与触摸屏的的串口进行连接DTU与触摸屏连接示意图7、GPRSDTU的配置参数如下图所示DTU配置参数图8、连接上平台显示界面如下图所示连接物联网平台界面图9、使用TLINK平台搭建的简易组态界面你可以看看拓普瑞网站上有几套方案由MCGS嵌入版生成的用户应用系统,其结构由主控窗口、设备窗口、用户窗口、实时数据库和运行策略五个部分构成,如下图所示。
窗口是屏幕中的一块空间,是一个“容器”,直接提供给用户使用。在窗口内,用户可以放置不同的构件,创建图形对象并调整画面的布局,组态配置不同的参数以完成不同的功能。
在MCGS嵌入版中可以有多个用户窗口和多个运行策略,实时数据库中也可以有多个数据对象。MCGS嵌入版用主控窗口、设备窗口和用户窗口来构成一个应用系统的人机交互图形界面,组态配置出各种不同类型和功能的对象或构件,同时可以对实时数据进行可视化处理。
实时数据库是MCGS嵌入版系统的核心
实时数据库相当于一个数据处理中心,同时也起到公用数据交换区的作用。MCGS嵌入版使用自建文件系统中的实时数据库来管理所有实时数据。从外部设备采集来的实时数据送入实时数据库,系统其它部分 *** 作的数据也来自于实时数据库。实时数据库自动完成对实时数据的报警处理和存盘处理,同时它还根据需要把有关信息以事件的方式发送给系统的其它部分,以便触发相关事件,进行实时处理。因此,实时数据库所存储的单元,不单单是变量的数值,还包括变量的特征参数(属性)及对该变量的 *** 作方法(报警属性、报警处理和存盘处理等)。这种将数值、属性、方法封装在一起的数据我们称之为数据对象。实时数据库采用面向对象的技术,为其它部分提供服务,提供了系统各个功能部件的数据共享。
主控窗口构造了应用系统的主框架
主控窗口确定了工业控制中工程作业的总体轮廓,以及运行流程、菜单命令、特性参数和启动特性等项内容,是应用系统的主框架。
设备窗口是MCGS嵌入版系统与外部设备联系的媒介
设备窗口专门用来放置不同类型和功能的设备构件,实现对外部设备的 *** 作和控制。设备窗口通过设备构件把外部设备的数据采集进来,送入实时数据库,或把实时数据库中的数据输出到外部设备。一个应用系统只有一个设备窗口,运行时,系统自动打开设备窗口,管理和调度所有设备构件正常工作,并在后台独立运行。注意,对用户来说,设备窗口在运行时是不可见的。
用户窗口实现了数据和流程的“可视化”
用户窗口中可以放置三种不同类型的图形对象:图元、图符和动画构件。图元和图符对象为用户提供了一套完善的设计制作图形画面和定义动画的方法。动画构件对应于不同的动画功能,它们是从工程实践经验中总结出的常用的动画显示与 *** 作模块,用户可以直接使用。通过在用户窗口内放置不同的图形对象,搭制多个用户窗口,用户可以构造各种复杂的图形界面,用不同的方式实现数据和流程的“可视化”。
组态工程中的用户窗口,最多可定义512个。所有的用户窗口均位于主控窗口内,其打开时窗口可见;关闭时窗口不可见。
运行策略是对系统运行流程实现有效控制的手段
运行策略本身是系统提供的一个框架,其里面放置有策略条件构件和策略构件组成的“策略行”,通过对运行策略的定义,使系统能够按照设定的顺序和条件 *** 作实时数据库、控制用户窗口的打开、关闭并确定设备构件的工作状态等,从而实现对外部设备工作过程的精确控制。
一个应用系统有三个固定的运行策略:启动策略、循环策略和退出策略,同时允许用户创建或定义最多512个用户策略。启动策略在应用系统开始运行时调用,退出策略在应用系统退出运行时调用,循环策略由系统在运行过程中定时循环调用,用户策略供系统中的其它部件调用。
综上所述,一个应用系统由主控窗口、设备窗口、用户窗口、实时数据库和运行策略五个部分组成。组态工作开始时,系统只为用户搭建了一个能够独立运行的空框架,提供了丰富的动画部件与功能部件。如果要完成一个实际的应用系统,应主要完成以下工作:
首先,要象搭积木一样,在组态环境中用系统提供的或用户扩展的构件构造应用系统,配置各种参数,形成一个有丰富功能可实际应用的工程;
然后,把组态环境中的组态结果下载到运行环境。运行环境和组态结果一起就构成了用户自己的应用系统。
在第一个扫描周期,程序从上至下执行,如果条件成立,执行相应的语句,不成立执行下面的语句,直至程序的末尾,输出相应的值;接着进行第二个周期的扫描,利用第一个周期的返回值和每个语句进行比较,同样的步骤执行完毕;依次循环,知道所有的条件都不成立,返回最终的结果输出。你可以试验一下,就明白了,每次增加一条语句,不要把所有的都写上。表达不够好,希望能帮助你。补充:你可以在组态环境下打开运行策略的窗口,根据你的需要你可以写启动策略或者循环策略,一般都是写循环策略,也可以新建自定义策略。以循环策略为例,你点击后打开,在界面上点右键,新增策略行,然后双击执行条件,在数据库里新建一个变量DO点吧,设置好启动条件,然后右键点击第三个方块——策略工具箱——脚本程序,拖到方块上,再双击方块,就会d出编脚本程序的串口,把你需要的哪些语句写进去,写几条都可以,每个周期他都要扫描一次,执行成立的表达式,输出结果。(另外,你还需要在数据库中定义wheel这个变量,为数值型即浮点型的。)
比如说只写:if wheel>600 then wheel=wheel-600,这个表达式,你对变量wheel输入600,他就不执行,写601,结果就是601-600=1,同样的道理,你写1805,输出的结果就是5可以随便增加语句,只执行判断条件非零的语句。
不知道这次说清楚没,希望能多交流。
再补充:先说一下组态,简单一点,所谓组态就是就是一种可视化的程序运行环境,一般用于工业电力化工等行业的自控方面,是一种人机交互,机机交互的媒介,(这是我自己下的定义)。它基于Windows *** 作系统和相关的VB或者C语言的基础上开发而成。他可以让人们自由的编辑,浏览,控制相关的设备等。也就是SCDA。
既然如此,在开发的时候它就可以利用这些编程语言,对它的一些控件( *** 作对象等)进行编程和定义。你提到的问题中的 Wheel 就是你要 *** 作的对象,也就是组态中你需要定义的一个变量,既然是变量,他的值就是可以改变的,如果你对他赋一个初值,并且触发了程序运行的条件,他就会根据后台程序的执行结果(每个扫描周期)返回对应的值,只要后台程序一直在运行,并且满足你设定的条件,他就会不停的改变自己的值。
对于你上面写的那些条件,也叫程序,组态系统在每个周期都要把每一条语句执行一遍,从上到下,从左到右,如果第一条成立,就返回第一条语句的Wheel的结果,然后在执行下一条语句的时候把上一条的Wheel结果作为后一条语句的初值,继续判断条件,成立则根据你的算式算出一个新的结果送给下一条语句,不成立的话则跳过这一条,继续把刚才的结果作为初值乡下传。
快停电了,就说这么多吧QQ44710149,有机会多交流
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)