03第三章 建立硬件系统和变量.docx
- 文档编号:26042800
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:25
- 大小:367.91KB
03第三章 建立硬件系统和变量.docx
《03第三章 建立硬件系统和变量.docx》由会员分享,可在线阅读,更多相关《03第三章 建立硬件系统和变量.docx(25页珍藏版)》请在冰豆网上搜索。
03第三章建立硬件系统和变量
第三章
建立硬件系统及变量
本章内容
&新建通讯链路
&新建设备
&新建数据块
&定义基本变量
&定义数据模型变量
概述
本章主要讲解如何定义设备,如何定义变量。
本培训工程中用到的变量主要为基本变量与模型变量。
KingSCADA3.0的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServers,它是一组独立的应用程序,可以脱离KingSCADA3.0软件,它依赖于KingSCADA3.0驱动产品,通过驱动与IO设备进行通讯。
采集系统由通讯链路,设备,数据块组成。
通讯链路:
通讯链路是指计算机通过什么途径和设备进行连接,链路类别:
串口,以太网,GPRS,Modem,通信卡,采集卡,无链路。
设备:
设备是通过串口、接口板等方式与KingSCADA3.0的数据采集系统进行数据信息交换的外部数字设备,包括可编程逻辑控制器(PLC)、分布式控制系统(DCS)、回路控制器、远程终端单元(RTU)、智能仪表、板卡、变频器等等。
数据块:
数据块是指设备中一段连续的地址空间,一个数据块中包含多个变量,同一个数据块中的变量放在一个数据桢中采集,数据块和变量并无直接关系,只是一个能够向设备进行采集的采集包,使用数据块,可以节省变量生成采集包的时间,如果事先规划好数据块,采集时照规按划好的数据块,可以大大提高采集的效率。
变量:
变量是对应硬件设备具体通道或地址的标识,由设备监视和控制的,反映现场运行状况的参数信息,如:
温度、压力、流量等,在其他系统有时被称为I/O变量。
第一节建立硬件系统
新建通讯链路
第一步:
在KingSCADA3.0开发环境树型目录中选择“设备”→“IOServers”选项,单击右侧编辑区中的“新建”按钮,弹出对话框,如图3-1所示:
图3-1新建I/OServers对话框
一个工程中可以建立多个IOServers,且IOServers可以脱离KingSCADA3.0独立存在。
IOServers分本地IOServers(KingSCADA3.0与IOServers在同一台机器上)和远程IOServer(KingSCADA3.0与IOServers不在同一台机器上)。
在该对话框中您可以设置IOServers的名称、类型、存储路径,如果是远程IOServers的话,要输入正确的IP地址和监听端口,如果是本地IOServers这两项就不需要设置了,在这里我们选择本地IOServers,名称为:
IOServers1,存储路径默认工程路径即可。
设置完毕后,单击“确认”按钮,完成I/OServers的建立,如图3-2所示:
图3-2建立完成的IOServers
第二步:
选中上述建立的I/OServers并双击,在弹出的右键菜单中执行“新建链路”命令,弹出链路设置对话框1,如图3-3所示:
图3-3新建链路对话框1
在这里我们选择的设备驱动是:
SiemensS7200PPI,是通过串口进行通讯的,单击“下一步”,弹出冗余链路设置对话框,如图3-4所示:
图3-4新建链路对话框2
由于没有冗余链路,所以该对话框不需设置,单击“下一步”,弹出写优化设置对话框,如图3-5所示:
图3-5新建链路对话框3
当客户的写指令频繁时,IOServer内部会形成许多待处理的写包队列,对于这些写包可以设置的选项如下:
非离散量写最新的数据:
变量为非离散量时,指丢弃该变量的其他写包,直接处理最新的写包。
(默认)
所有变量写最新的数据:
所有变量,均丢弃该变量的其他写包,直接处理最新的写包。
所有变量的所有写操作都形成相应的写包:
处理所有的写包。
写包与读包之比:
当写操作频繁时,IOServer写包优先的机制,会导致读包长时间没有处理,客户看到的就是画面长时间不刷新。
为了减少这种负面影响,设置读包写包之比。
默认为10,表示连续处理10个写包之后,会处理一个读包。
在这里我们使用默认值,单击“下一步”,弹出轮询时间设置对话框,如图3-6所示:
图3-6新建链路对话框4
该对话框是用来设置延时时间,可以设置的选项如下:
处理单个包之后的延时:
默认为0
处理一个轮询之后的延时与处理一个轮询的时间,这两项是二选一。
默认情况下,是选择前者,并且延时为0。
如果客户希望两个数据块的采集周期为1S和2S,那么可以设置处理一个轮询的时间为2S。
在后面数据块的属性中再设置各自的采集次数分别为2和1。
在这里我们使用默认值,单击“下一步”,弹出串口通讯参数设置对话框,如图3-7所示:
图3-7新建链路对话框5
在该对话框中可以设置串口通讯参数:
包括波特率、数据位、停止位、校验方式等等,设置项要与实际设备中的设置项完全一致,否则会导致通讯失败。
单击“下一步”完成链路的建立。
新建设备
建立设备就是确定设备使用何种通讯规约的过程。
与计算机通讯的设备可以分为很多种,绝大多数与现场打交道。
选中上述建立的链路,单击鼠标右键,在弹出的右键菜单中执行“新建设备”命令,弹出对话框,如图3-8所示:
图3-8新建设备对话框1
在这里我们选西门子s7200系列的设备,并输入设备的逻辑名称:
s7200PLC,单击“下一步”,弹出通讯超时设置对话框,如图3-9所示:
图3-9新建设备对话框2
通讯超时时间:
指发送指令,等待返回相应的时间,默认3000毫秒。
通讯超时次数:
默认3次,连续通讯失败3次,即认为该设备故障,设备所在的其他数据块也停止采集。
选择默认值,单击“下一步”,弹出通讯故障恢复设置对话框,如图3-10所示:
图3-10新建设备对话框3
尝试恢复间隔:
当KingSCADA3.0和设备通讯失败后,KingSCADA3.0将根据此处的设定时间和设备尝试通讯一次,
最长恢复时间:
当KingSCADA3.0和设备通讯失败后,超过此设定的时间仍然和设备通讯不上的话,KingSCADA3.0将不再尝试和设备通讯。
这里我们选择上述设置即可,单击“下一步”,完成设备的建立。
新建数据块
选中上述建立的设备,单击鼠标右键,在弹出的右键菜单中执行“新建数据块”命令,弹出数据块设置对话框,设置如下:
图3-11新建数据块对话框
在该对话框中我们建立了一个数据块,该数据块包含:
M1-M100,即在运行时,M1-M100地址的数据会形成一个包,系统会同时采集该包中的数据。
用户可以根据需要建立其它数据块,在这里我们就不再具体介绍了。
第二节定义变量
变量对应的是外部采集和控制设备通过某种方式传递来的现场数据。
KingSCADA3.0支持的变量类型如下:
系统变量:
基本的变量点,每个变量点是一个单独的变量对象,不能修改。
基本变量:
基本的变量点,每个变量点是一个单独的变量对象。
结构变量:
以结构的形式存在,是多个基本变量点的集合。
引用变量:
以一组变量,替代多组数据类型相同的变量。
基本类型的变量也可以按照数据类型分为离散型、实型、整型和字符串类型。
1、内存离散变量、I/O离散变量
类似一般程序设计语言中的布尔(BOOL)变量,只有0、1两种取值,用于表示一些开关量。
2、内存实型变量、I/O实型变量
类似一般程序设计语言中的浮点型变量,用于表示浮点数据,取值范围10E-38~10E+38,有效值7位。
3、内存整数变量、I/O整数变量
类似一般程序设计语言中的有符号长整数型变量,用于表示带符号的整型数据,取值范围~。
4、内存字符串型变量、I/O字符串型变量
类似一般程序设计语言中的字符串变量,可用于记录一些有特定含义的字符串,如名称:
密码等,该类型变量可以进行比较运算和赋值运算。
本培训工程中我们用到的变量主要有:
反应釜温度,反应釜液位,原料罐液位,催化罐液位,原料罐进料阀门,催化罐进料阀门,反应釜进料阀门1,反应釜进料阀门2,反应釜出料阀门3。
原料罐进料水泵,催化罐进料水泵,反应釜出料水泵。
其中我们将反应釜温度,反应釜液位,反应釜进料阀门1,反应釜进料阀门2,反应釜出料阀门3,反应釜出料水泵定义为基本变量,原料罐液位,催化罐液位,原料罐进料阀门,催化罐进料阀门,原料罐进料水泵,催化罐进料水泵定义为数据模型变量。
一、定义基本变量:
基本变量定义过程如下:
第一步:
在KingSCADA3.0开发环境树型目录中选择“数据库”→“数据词典”选项,单击右侧“内容显示区”中的“新建”按钮,弹出对话框,如图3-12所示:
图3-12新建变量对话框
此对话框中默认有三个属性卡:
基本属性卡、历史记录属性卡和报警属性卡,当您在数据类型下拉框中选择IO变量后会增加一个IO属性卡,如图3-13所示:
图3-13I/O属性卡
第二步:
在对话框中建立培训工程中需要的变量:
⏹变量名:
temperature
⏹变量类型:
基本变量
⏹数据类型:
MemFloat
⏹变量描述:
反应釜温度
⏹初始值:
0
⏹灵敏度:
0
⏹最小值:
0
⏹最大值:
100
⏹保存数值:
选中
⏹变量名:
liquid_level
⏹变量类型:
基本变量
⏹数据类型:
MemFloat
⏹变量描述:
反应釜液位
⏹初始值:
0
⏹灵敏度:
0
⏹最小值:
0
⏹最大值:
100
⏹保存数值:
选中
⏹变量名:
valve_gate1
⏹变量类型:
基本变量
⏹数据类型:
MemDisc
⏹变量描述:
反应釜进料阀门1
⏹初始值:
关
⏹保存数值:
选中
⏹变量名:
valve_gate2
⏹变量类型:
基本变量
⏹数据类型:
MemDisc
⏹变量描述:
反应釜进料阀门2
⏹初始值:
关
⏹保存数值:
选中
⏹变量名:
valve_gate3
⏹变量类型:
基本变量
⏹数据类型:
MemDisc
⏹变量描述:
反应釜出料阀门
⏹初始值:
关
⏹保存数值:
选中
⏹变量名:
water_pump
⏹变量类型:
基本变量
⏹数据类型:
MemDisc
⏹变量描述:
反应釜出料水泵
⏹初始值:
关
⏹保存数值:
选中
⏹变量名:
Motor
⏹变量类型:
基本变量
⏹数据类型:
MemDisc
⏹变量描述:
反应釜搅拌电机
⏹初始值:
关
⏹保存数值:
选中
在这里我们建立的变量都是内存变量,主要目的是为了达到工程的演示效果,但在实际工程中,这些变量都是与现场设备连接在一起的,应该选择I/O变量。
下面具体介绍I/O变量属性设置。
第三步:
I/O变量属性说明(以I/O实型为例)
变化灵敏度:
数据类型为整型或实型时此项有效,表示只有当该变量的值变化幅度超过设置的“变化灵敏度”时,KingSCADA3.0才更新与之相连接的图素(缺省为0)
保存数值:
选择此项后,在系统运行时,当变量的值发生变化后,系统将自动保存该值。
当系统退出后再次启动时,变量的值保持为最后一次变化的值。
保存参数:
选择此项后,在系统运行时,如果您修改了此变量的域值(可读可写型),系统将自动保存修改后的域值。
当系统退出后再次启动时,变量的域值保持为最后一次的记录值,无需用户再去重新定义。
变量域的说明请参见用户手册。
设备名称:
设置IO变量连接的设备,单击
按钮,在弹出的对话框中选择已定义好的设备。
寄存器名称:
指定与变量进行通讯的寄存器名称,该寄存器与工程人员指定的连接设备有关,长度不超过128个字符。
寄存器地址:
指定和变量关联的寄存器中具体的数据地址,数据地址的定义方式和具体连接的设备有关,长度不超过128个字符。
数据类型:
设置变量对应的寄存器的数据类型,共有9种数据类型供用户选择:
BIT:
FEAT51.16.11位;范围是:
0或1
BYTE:
FEAT51.16.28位,1个字节;范围是:
0---255
SHORT:
FEAT51.16.32个字节,范围是:
-32768---32767
USHORT:
FEAT51.16.416位,2个字节;范围是:
0---65535
BCD:
FEAT51.16.516位,2个字节;范围是:
0---9999
LONG:
FEAT51.16.632位,4个字节;范围是:
-——
LONGBCD:
FEAT51.16.732位,4个字节;范围是:
0---
FLOAT:
FEAT51.16.832位,4个字节;范围是:
10e-38---10e38,有效位7位
STRING:
FEAT51.16.9128个字符长度
DOUBLE:
64位;负值取值范围为-1.E+308到-4.E-324,正值取值范围为4.E-324到1.E+308
数据块:
数据块是指设备中一段连续的地址空间,一个数据块中包含多个变量,同一个数据块中的变量放在一个数据桢中采集,此项是用来设置变量属于哪个数据块,输入数据块的名称。
采集频率:
设置变量的采样频率,即KingSCADA3.0多长时间从设备中采集一个数据点。
读写属性:
只读:
对于只进行采集而不需要人为手动修改其值的变量一般定义为只读。
读写:
对于需要进行输出控制又需要读回的变量一般定义为读写。
只写:
对于只需要进行输出而不需要读回的变量可以定义为只写。
注:
当只写变量的采集频率设置为0时,只有数据值发生变化时才会进行写操作,对于只写变量建议的采集频率为0。
最小原始值:
针对I/O整型、实型变量,指KingSCADA3.0直接从外部设备中读取到的最小值。
最大原始值:
针对I/O整型、实型变量,指KingSCADA3.0直接从外部设备中读取到的最大值。
最小值:
用于在KingSCADA3.0中将读取到的原始值转化为具有实际工程意义的工程值,并在画面中显示,与最小原始值对应。
最大值:
用于在KingSCADA3.0中将读取到的原始值转化为具有实际工程意义的工程值,并在画面中显示,与最大原始值对应。
最小原始值、最大原始值和最小值、最大值这四个数值是用来确定原始值与工程值之间的转换比例(当最小值和最小原始值一样,最大值和最大原始值一样时,则KingSCADA3.0中显示的值和外部设备中对应寄存器的值一样)。
原始值和工程值之间的转换方式一般采用线性转换,线性转换是把最小原始值到最大原始值之间的原始值线性转换到最小值到最大值之间,下面将以具体的实例进行讲解。
示例:
以ISA板卡的模拟量输入信号(AD)为例进行讲解
最小原始值、最大原始值为KingSCADA3.0ISA总线上获取到模拟信号转换值。
当板卡的A/D转换分辨率为12位时,则经过板卡的AD转换器传送到ISA总线上的二进制数据为0~4095,所以原始最小值设置为0,原始最大值设置为4095。
如果用户希望在画面中显示板卡模拟通道实际输入的电压,则可以将最小值和最大值分别设置为板卡该通道的允许电压和电流的输入范围:
例如板卡输入范围0~5V,则最小值设置为0,最大值设置为5即可。
采集设置:
采集设置分允许、强制读、强制写三个复选项:
允许:
控制变量采集与否,此项被选中表示KingSCADA3.0运行时采集该变量的值,否则不采集变量的值。
用户也可以在运行环境中通过IOEnable域动态更改该属性值。
强制读:
此项为复选项,当该项被选中后,每次采集(数据上报),不管数据是否发生变化,都要强制记录、报警和进行其它处理。
用户也可以在运行环境中通过IORead域动态更改该属性值。
强制写:
此项为复选项,当此项被选中后,在KingSCADA3.0画面中只要用户重新设置、输入了变量值,不管是否发生了变化,KingSCADA3.0都完成一次写操作,将数据写到设备上。
用户也可以在运行环境中通过IOWrite域动态更改该属性值。
至此,数据变量已经定义起来了,而对于大批同一类型的变量,KingSCADA3.0还提供了快速成批定义变量的方法—结构变量,如果大家感兴趣的话,可以参考KingSCADA3.0用户手册。
二、定义数据模型变量:
在定义数据模型变量之前,我们要先介绍一下数据模型,因为数据模型实例化的产物是数据模型变量,所以要先有数据模型才会有数据模型变量。
数据模型:
模拟现实中的生产设备的数据部分,把某一设备的一些变量和关于这些变量的一些脚本运算组合在一起形成数据模型,用户在使用时只需要将模型实例化,即配置相关的参数,可以快速把这些数据点和脚本部署到工程中。
使用数据模型可以实现快速建立变量的功能,而对于复杂的、点数相对较大的工程或者在不同的工程中具有复用性的模型,这个功能是非常有用的。
使用这个功能的关键是如何提炼出符合要求的数据模型。
我们在这里建立一个包含液位、阀门、水泵三个变量的数据模型,并且将液位与阀门、水泵的控制逻辑关系放到这个数据模型中来。
三个变量的逻辑关系为:
液位低于报警低限值时自动开启水泵与阀门开关,高于报警高限值时停止水泵,关闭阀门。
数据模型创建过程如下:
第一步:
在KingSCADA3.0开发环境的树型目录中选择“数据库”→“数据模型”选项,在右侧编辑中单击“新建”按钮,弹出对话框,如图3-14所示:
图3-14创建数据模型对话
在该对话框中输入数据模型的名称:
如:
Control,其他属性可以根据需要输入,比如密码,如果设置了密码,用户在对数据模型编辑时要正确输入。
初始ID和当前ID是由系统自动生成的,默认即可。
设置完毕后,单击“确认”按钮,该数据模型将出现在内容显示区,如图3-15所示:
图3-15编辑区中的数据模型
第二步:
在图3-15中选中模型图标,单击“编辑”按钮或双击数据模型图标,弹出对话框,如图3-16所示:
如果在创建数据模型对话框中设置密码的话,在编辑之前系统会提示密码输入对话框,只有输入正确后才可弹出下图:
图3-16数据模型编辑对话框
数据模型内容包括:
变量、参数和脚本,在该对话框中可以建立数据模型中用到的变量、参数并编写相关的控制脚本。
这里建立的变量是局部变量,适应范围仅仅是该数据模型。
新建参数:
数据模型参数主要于定义数据模型变量时,变量的属性值可以直接关联某个参数,或者包含某些参数,这样当数据模型在实例化成数据对象时,只需要改变参数的值,即可改变变量的属性值,参数起到了宏替换的作用。
参数支持的数据类型如下:
字符串类型、长整型、浮点型、布尔类型
我们建立两个参数:
HiLimit高限值、LiLimit低限值
在图3-16中选择“参数”选项,单击鼠标右键,在弹出的右键菜单中执行“新参数”命令,弹出对话框,如图3-17所示:
图3-17新建参数对话框
在数据模型中定义如下参数:
⏹参数名:
HiLimit
⏹描述:
液位高限值
⏹数据类型:
float
⏹默认值:
95.5
⏹参数名:
LoLimit
⏹描述:
液位低限值
⏹数据类型:
float
⏹默认值:
15.5
新建变量:
数据模型变量属性可以进行锁定,属性一旦被锁定,则数据模型属性变化时,将会传播到实例化后的数据模型变量中,修改属性的变化,否则,不会传播到数据模型变量中。
单击属性后面的
按钮,当该按钮变为
,表示该属性被锁定。
在图3-16中选择“变量”选项,单击鼠标右键,在弹出的右键菜单中执行“新建变量”命令,弹出对话框,如图3-18所示:
图3-18新建变量对话框
在数据模型中定义如下变量:
⏹变量名:
liquid_level
⏹数据类型:
MemFloat
⏹变量描述:
液位
⏹初始值:
0
⏹灵敏度:
0
⏹最小值:
0
⏹最大值:
100
⏹保存数值:
选中
⏹属性锁定
点击“Alarm”选项卡,设置高限、低限报警设定,高低限报警值我们连接上面设置的参数HiLimit,LiLimit,单击
按钮,如图3-19所示:
选择相应的参数即可,选择完成后如图3-20
图3-19选择参数
图3-20报警设置
在数据模型中定义其他离散变量:
⏹变量名:
valve_gate
⏹数据类型:
MemDisc
⏹变量描述:
泵状态
⏹初始值:
关
⏹保存数值:
选中
⏹属性锁定
⏹变量名:
water_pump
⏹数据类型:
MemDisc
⏹变量描述:
泵状态
⏹初始值:
关
⏹保存数值:
选中
⏹属性锁定
新建数据模型脚本:
数据模型脚本是指在数据模型中编写的脚本程序,脚本中只能使用模型中定义的变量和工程中的系统变量,如:
$Year、$Month、$Day等,但可以使用组态王提供的所有函数。
数据模型支持的脚本类型如下:
数据改变脚本、事件脚本、定时脚本、自定义函数脚本。
我们利用事件脚本来做逻辑控制。
要实现的三个变量的逻辑关系为:
液位低于报警低限值时自动开启水泵与阀门开关,高于报警高限值时停止水泵,关闭阀门。
在事件脚本中点击“新建”,弹出如下图3-21所示:
图3-21事件脚本
建立三个事件脚本程序如下:
1、在事件条件中填写:
liquid_level>liquid_level.HiLimit
在发生时填写:
valve_gate=0;
water_pump=0;
2、在事件条件中填写:
liquid_level 在发生时填写: valve_gate=1; water_pump=1; 3、在事件条件中填写: valve_gate==1 在存在时填写: liquid_level=liquid_level+0.78; 第三步: 数据模型实例化,实例化的产物是数据模型变量。 在KingSCADA3.0开发环境的树型目录中选择“数据库”→“数据模型实例化”选项,在右侧编辑中单击“新建”按钮,弹出对话框,如图3-22所示: 图3-22数据模型实例化对话框 名称: activator 数据模型: Control 单击“确认”按钮,该数据对象出现在模型编辑区中。 利用同样的方法,建立另外一个数据对象: 名称: material 数据模型: Control 即两个数据模型变量使用的是同一个数据模型,而模型中又有三个变量,那就相当于建立了6个变量,实例化后的变量就是数据模型变量了,数据模型变量和工程变量一样,可以应用在工程的各个地方,使用方法也一致。 通过以上操作我们不难看出,使用数据模型可以实现快速定义变量的功能,同时还可以在内部定义相应的逻辑控制功能。 建立的这些数据模型变量,在后面章节中我们还会用到。 至此,硬件系统和变量已经建立完毕,下面我们就该使用KingSCADA3.0软件提供的强大的绘图工具绘制监控画面了。 课后练习: 1、尝试在KingSCADA3.0中建立西门子300mpi通讯的设备并定义设备中的变量。 2、尝试在KingSCADA3.0中建立欧姆龙hostlink通讯的设备并定义设备中的变量。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 03第三章 建立硬件系统和变量 03 第三 建立 硬件 系统 变量