31 03第三章 建立硬件系统和变量Word文档下载推荐.docx
《31 03第三章 建立硬件系统和变量Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《31 03第三章 建立硬件系统和变量Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
设置完毕后,单击“确认”按钮,完成I/OServers的建立,如图3-2所示:
图3-2建立完成的IOServers
第二步:
选中左上角“IOServer1”,右键弹出对话框“新建链路”;
点击“新建链路”,弹出链路设置对话框1,如图3-3所示:
图3-3新建链路对话框1
第三步:
在这里我们选择的设备驱动是:
SiemensS7200PPI,是通过串口进行通讯的,单击“下一步”,弹出通讯超时设置对话框,如图3-4所示:
图3-4新建链路对话框2
第四步:
链路连接超时时间,范围是:
0-65535,单位为毫秒。
当链路连接在设定的时间范围内连接失败,IOServer会再次连接链路。
单击“下一步”,出现串口通讯参数设置画面,如图3-5所示:
图3-5新建链路对话框3
设置完通讯参数之后,点击“下一步”,弹出设置信息小结对话框
新建设备
设备是通过串口方式与KingSCADA的数据采集系统进行数据信息交换的外部数字设备。
建立设备就是确定设备使用何种通讯规约的过程,在一条链路上可以创建多个设备。
选中建立的链路,单击鼠标右键,在弹出的右键菜单中执行“新建设备”命令,弹出对话框,如图3-6所示:
图3-6新建设备1
在这里选S7200PPI系列的设备,并输入设备的逻辑名称西门子,单击“下一步”按钮,弹出设备地址设置对话框弹出设备地址设置对话框,如图3-7所示:
图3-7新建设备2
西门子ppi的设备地址默认为2,设置完设备的地址,单击“下一步”按钮弹出通讯故障恢复设置对话框。
如图3-8所示:
图3-8新建设备3
尝试恢复间隔:
当KingSCADA和设备通讯失败后,KingSCADA将根据此处的设定时间和设备尝试通讯一次
最长恢复时间:
当KingSCADA和设备通讯失败后,超过此设定的时间仍然和设备通讯不上的话,KingSCADA将不再尝试和设备通讯。
这里我们选择默认设置即可,单击“下一步”,完成设备的建立。
如图3-9所示:
图3-9新建设备4
新建数据块
选中上述建立的设备,单击鼠标右键,在弹出的右键菜单中执行“新建数据块”命令,弹出数据块设置对话框,设置如下:
图3-10新建数据块对话框1
在该对话框中我们建立了一个数据块,该数据块包含:
M1-M100,即在运行时,M1-M100地址的数据会形成一个包,系统会同时采集该包中的数据。
如图3-11所示
图3-11新建数据块对话框2
用户可以根据需要建立其它数据块,在这里我们就不再具体介绍了。
建立数据块是可选项,有些驱动不支持建立数据块,如果遇到中情况,就不需要在IOServer建立数据块,直接在scada软件的“建点—数据词典—新建”即可。
此IOServer建立完成之后可以供本机SCADA工程引用或者被别的电脑上的SCADA工程做为远程IOServer引用。
第二节定义变量
变量对应的是外部采集和控制设备通过某种方式传递来的现场数据。
KingSCADA3.1支持的变量类型如下:
系统变量:
基本的变量点,每个变量点是一个单独的变量对象,不能修改。
基本变量:
基本的变量点,每个变量点是一个单独的变量对象。
结构变量:
以结构的形式存在,是多个基本变量点的集合。
引用变量:
以一组变量,替代多组数据类型相同的变量。
基本类型的变量也可以按照数据类型分为离散型、实型、整型和字符串类型。
1、内存离散变量、I/O离散变量
类似一般程序设计语言中的布尔(BOOL)变量,只有0、1两种取值,用于表示一些开关量。
2、内存实型变量、I/O实型变量
类似一般程序设计语言中的浮点型变量,用于表示浮点数据,取值范围10E-38~10E+38,有效值7位。
3、内存整数变量、I/O整数变量
类似一般程序设计语言中的有符号长整数型变量,用于表示带符号的整型数据,取值范围-2147483648~2147483647。
4、内存字符串型变量、I/O字符串型变量
类似一般程序设计语言中的字符串变量,可用于记录一些有特定含义的字符串,如名称:
密码等,该类型变量可以进行比较运算和赋值运算。
本培训工程中我们用到的变量主要有:
反应釜温度,反应釜液位,原料罐液位,催化罐液位,原料罐进料阀门,催化罐进料阀门,反应釜进料阀门1,反应釜进料阀门2,反应釜出料阀门3。
原料罐进料水泵,催化罐进料水泵,反应釜出料水泵。
其中我们将反应釜温度,反应釜液位,反应釜进料阀门1,反应釜进料阀门2,反应釜出料阀门3,反应釜出料水泵定义为基本变量,原料罐液位,催化罐液位,原料罐进料阀门,催化罐进料阀门,原料罐进料水泵,催化罐进料水泵定义为数据模型变量。
一、定义基本变量:
基本变量定义过程如下:
在KingSCADA3.1开发环境树型目录中选择“建点”→“数据词典”选项,单击右侧“内容显示区”中的“新建”按钮,弹出对话框,如图3-12所示:
图3-12新建变量对话框
此对话框中默认有三个属性卡:
基本属性卡、报警属性卡和历史属性卡,当您在数据类型下拉框中选择IO变量后会增加一个IO属性卡,如图3-13所示:
图3-13I/O属性卡
在对话框中建立培训工程中需要的变量:
⏹变量名:
temperature
⏹变量类型:
基本变量
⏹数据类型:
内存实数
⏹变量描述:
反应釜温度
⏹初始值:
⏹死区:
⏹最小值:
⏹最大值:
100
⏹保存值:
选中
liquid_level
反应釜液位
⏹保存数值:
valve_gate1
内存离散
反应釜进料阀门1
False
valve_gate2
反应釜进料阀门2
valve_gate3
反应釜出料阀门
water_pump
反应釜出料水泵
Motor
反应釜搅拌电机
在这里我们建立的变量都是内存变量,主要目的是为了达到工程的演示效果,但在实际工程中,这些变量都是与现场设备连接在一起的,应该选择I/O变量。
选择I/O变量之前需要先建立IOServer,在KingSCADA3.1开发环境树型目录中选择“建点”→“IOServer”选项,单击右侧“内容显示区”中的“新建”按钮,如图3-14所示:
图3-14新建IOServer
名称:
IOServer工程名称
IP地址:
IOServer所在计算机的IP地址
备份网卡IP:
IOServer所在计算机的备份网卡的IP地址
端口:
IOServer开的端口号
一个KingScada工程中可以建立多个IOServer,IOServer也可以脱离KingSCADA独立存在。
在该对话框中设置IOServer的名称、端口号。
端口号是IOServer开的一个监听端口,这里把IOServer命名为IOServer1。
点击确认之后就可以在数据词典中建立连接该IOServer的变量了。
下面具体介绍I/O变量属性设置。
I/O变量属性说明(以I/O实型为例)
访问名称:
设置IO变量的来源,单击
按钮,在弹出的对话框中选择已定义好的IOServer。
设备中一段连续的地址空间,一个数据块中包含多个变量,同一个数据块中的变量放在一个数据桢中采集,此项是用来设置变量属于哪个数据块,输入数据块的名称。
寄存器:
指定IO变量关联的寄存器,由寄存器类型和寄存器地址组成,寄存器类型和寄存器地址的定义方式与IOServer驱动的设备类型有关。
注:
1、只有在IOServer工程启动,并且停止采集的情况下,才能进行访问名称、数据块、寄存器的配置。
2、IOServer必须安装所设设备的驱动程序,寄存器下拉框才能列出相应的寄存器类型。
3、IOSERVER的每一个设备都有2个特殊寄存器:
①
@CommStatus,Short数据类型,0--正常,1--暂停采集,2---故障,?
?
---停止采集。
②
@CommControl,Bit数据类型,只写寄存器,true----开始采集,false---暂停采集。
频率:
变量的采样频率,即KingSCADA多长时间从设备中采集一个数据点。
只有不属于任何数据块的IO变量,此项才有效。
数据类型:
设置变量对应的寄存器的数据类型,共有9种数据类型供用户选择。
BIT:
1位;
范围是:
0或1
BYTE:
8位,1个字节;
0---255
SHORT:
2个字节,范围是:
-32768---32767
USHORT:
16位,2个字节;
0---65535
BCD:
0---9999
LONG:
32位,4个字节;
-2147483648——2147483647
LONGBCD:
0---4294967295
FLOAT:
10e-38---10e38,有效位7位
STRING:
128个字符长度
DOUBLE:
64位;
负值取值范围为-1.79769313486231570E+308到-4.94065645841246544E-324,正值取值范围为4.94065645841246544E-324到1.79769313486231570E+3086464
读写属性:
只读:
对于只进行采集而不需要人为手动修改其值的变量一般定义为只读。
读写:
对于需要进行输出控制又需要读回的变量一般定义为读写。
只写:
对于只需要进行输出而不需要读回的变量可以定义为只写。
当只写变量的采集频率设置为0时,只有数据值发生变化时才会进行写操作,对于只写变量建议的采集频率为0。
最小原始值:
字符串变量和离散变量无该属性,指从驱动程序中采集到现场实际数值的下限,与变量的数据类型保持一致。
最大原始值:
字符串变量和离散变量无该属性,指从驱动程序中采集到现场实际数值的上限。
与变量的数据类型保持一致。
转换方式:
设置I/O变量输入原始值到数据库使用值的转换方式。
有线性转换、取反、开方转换、非线性表、累计等转换方式。
关于转换的具体概念和方法,请参见本章9.5节IO变量的转换方式。
采集设置:
分为允许、强制读、强制写三个复选项:
允许:
控制变量采集与否,此项被选中表示KingSCADA运行时采集该变量的值,否则不采集变量的值。
用户也可以在运行环境中通过IOEnable域动态更改该属性值。
强制读:
此项为复选项,当该项被选中时,每次采集(数据上报),不管数据是否发生变化,都要强制记录、报警和进行其它处理。
用户也可以在KingSCADA运行环境中通过IORead域动态更改该属性值。
强制写:
此项为复选项,当此项被选中时,在KingSCADA画面中只要用户重新设置、输入了变量值,不管是否发生了变化,KingSCADA都完成一次写操作,将数据写到设备上。
用户也可以在运行环境中通过IOWrite域动态更改该属性值。
定义完变量的属性后,单击“确定”按钮,新建的变量会增加到数据词典中。
示例:
以ISA板卡的模拟量输入信号(AD)为例进行讲解
最小原始值、最大原始值为KingSCADA3.1ISA总线上获取到模拟信号转换值。
当板卡的A/D转换分辨率为12位时,则经过板卡的AD转换器传送到ISA总线上的二进制数据为0~4095,所以原始最小值设置为0,原始最大值设置为4095。
如果用户希望在画面中显示板卡模拟通道实际输入的电压,则可以将最小值和最大值分别设置为板卡该通道的允许电压和电流的输入范围:
例如板卡输入范围0~5V,则最小值设置为0,最大值设置为5即可。
至此,数据变量已经定义起来了,而对于大批同一类型的变量,KingSCADA3.1还提供了快速成批定义变量的方法—结构变量,如果大家感兴趣的话,可以参考KingSCADA3.1用户手册。
二、定义数据模型变量:
在定义数据模型变量之前,我们要先介绍一下数据模型,因为数据模型实例化的产物是数据模型变量,所以要先有数据模型才会有数据模型变量。
数据模型:
模拟现实中的生产设备的数据部分,把某一设备的一些变量和关于这些变量的一些脚本运算组合在一起形成数据模型,用户在使用时只需要将模型实例化,即配置相关的参数,可以快速把这些数据点和脚本部署到工程中。
使用数据模型可以实现快速建立变量的功能,而对于复杂的、点数相对较大的工程或者在不同的工程中具有复用性的模型,这个功能是非常有用的。
使用这个功能的关键是如何提炼出符合要求的数据模型。
我们在这里建立一个包含液位、阀门、水泵三个变量的数据模型,并且将液位与阀门、水泵的控制逻辑关系放到这个数据模型中来。
三个变量的逻辑关系为:
液位低于报警低限值时自动开启水泵与阀门开关,高于报警高限值时停止水泵,关闭阀门。
数据模型创建过程如下:
在KingSCADA3.1开发环境的树型目录中选择“建点”→“数据模型”选项,在右侧编辑中单击“新建”按钮,弹出对话框,如图3-15所示:
图3-15创建数据模型对话
在该对话框中输入数据模型的名称:
如:
Control,其他属性可以根据需要输入,比如密码,如果设置了密码,用户在对数据模型编辑时要正确输入。
初始ID和当前ID是由系统自动生成的,默认即可。
设置完毕后,单击“确认”按钮,该数据模型将出现在内容显示区,如图3-16所示:
图3-16编辑区中的数据模型
在图3-16中选中模型图标,单击“编辑”按钮或双击数据模型图标,弹出对话框,如图3-17所示:
如果在创建数据模型对话框中设置密码的话,在编辑之前系统会提示密码输入对话框,只有输入正确后才可弹出下图:
图3-17数据模型编辑对话框
数据模型内容包括:
变量、参数和脚本,在该对话框中可以建立数据模型中用到的变量、参数并编写相关的控制脚本。
这里建立的变量是局部变量,适应范围仅仅是该数据模型。
新建参数:
数据模型参数主要于定义数据模型变量时,变量的属性值可以直接关联某个参数,或者包含某些参数,这样当数据模型在实例化成数据对象时,只需要改变参数的值,即可改变变量的属性值,参数起到了宏替换的作用。
参数支持的数据类型如下:
字符串类型、长整型、浮点型、布尔类型
我们建立两个参数:
HiLimit高限值、LiLimit低限值
在图3-17中选择“参数”选项,单击鼠标右键,在弹出的右键菜单中执行“新参数”命令,弹出对话框,如图3-18所示:
图3-18新建参数对话框
在数据模型中定义如下参数:
⏹参数名:
HiLimit
⏹描述:
液位高限值
float
⏹默认值:
95.5
LoLimit
液位低限值
15.5
新建变量:
数据模型变量属性可以进行锁定,属性一旦被锁定,则数据模型属性变化时,将会传播到实例化后的数据模型变量中,修改属性的变化,否则,不会传播到数据模型变量中。
单击属性后面的
按钮,当该按钮变为
,表示该属性被锁定。
在图3-17中选择“变量”选项,单击鼠标右键,在弹出的右键菜单中执行“新建变量”命令,弹出对话框,如图3-19所示:
图3-19新建变量对话框
在数据模型中定义如下变量:
液位
⏹属性锁定
点击“报警”选项卡,设置高限、低限报警设定,高低限报警值我们连接上面设置的参数HiLimit,LiLimit,单击
按钮,如图3-20所示:
选择相应的参数即可,选择完成后如图3-20
图3-20选择参数
图3-21报警设置
在数据模型中定义其他离散变量:
valve_gate
内存离散c
泵状态
关
新建数据模型脚本:
数据模型脚本是指在数据模型中编写的脚本程序,脚本中只能使用模型中定义的变量和工程中的系统变量,如:
$Year、$Month、$Day等,但需要注意,系统变量不能作为触发条件,也可以使用组态王提供的所有函数。
数据模型支持的脚本类型如下:
数据改变脚本、事件脚本、定时脚本、自定义函数脚本。
我们利用事件脚本来做逻辑控制。
要实现的三个变量的逻辑关系为:
在表达式脚本中点击“新建”,弹出如下图3-22所示:
图3-22事件脚本
建立三个表达式脚本程序如下:
1、在事件条件中填写:
liquid_level>
liquid_level.HiLimit
在“进入”填写:
valve_gate=0;
water_pump=0;
2、在事件条件中填写:
liquid_level<
liquid_level.LoLimit
valve_gate=1;
water_pump=1;
3、在事件条件中填写:
valve_gate==1
在“存在”填写:
liquid_level=liquid_level+0.78;
数据模型实例化,实例化的产物是数据模型变量。
在KingSCADA3.1开发环境的树型目录中选择“数据库”→“数据模型实例化”选项,在右侧编辑中单击“新建”按钮,弹出对话框,如图3-23所示:
图3-23数据模型实例化对话框
activator
Control
单击“确认”按钮,该数据对象出现在模型编辑区中。
利用同样的方法,建立另外一个数据对象:
material
即两个数据模型变量使用的是同一个数据模型,而模型中又有三个变量,那就相当于建立了6个变量,实例化后的变量就是数据模型变量了,数据模型变量和工程变量一样,可以应用在工程的各个地方,使用方法也一致。
通过以上操作我们不难看出,使用数据模型可以实现快速定义变量的功能,同时还可以在内部定义相应的逻辑控制功能。
建立的这些数据模型变量,在后面章节中我们还会用到。
至此,硬件系统和变量已经建立完毕,下面我们就该使用KingSCADA3.1软件提供的强大的绘图工具绘制监控画面了。
课后练习:
1、尝试在KingSCADA3.1中建立西门子300mpi通讯的设备并定义设备中的变量。
2、尝试在KingSCADA3.1中建立欧姆龙hostlink通讯的设备并定义设备中的变量。