PANS3.0.rar (3288 K) 下载次数:631 PANS系统简介 排版更好的ppt文件,在附件中。
第一章 PANS是什么
PANS,Platform of Automation Network System(磐石自动化网络系统平台),是全可视化的集监控、仿真、控制为一体的系统平台。
PANS,首先是一个平台,一个适用于实时
数据收集、
显示、告警等处理的一个平台。
PANS内核仅仅提供了一个与应用无关的(冗余的、分布式的)参数
数据库、实时数据库、历史数据库,提供基本的数据模型配置、事件处理、用户管理、进程管理、连接管理等,以及一个可靠的数据订阅机制,而基于此,对于不同行业应用的快速实现与扩充提供强有力的支撑,甚至,大部分情况下,不需要编写代码,仅仅通过配置便可完成大部分默认的数据处理功能,例如最大、最小值统计、越限告警等等;对于控制逻辑、动态图元可以通过编写简单的脚本来实现;而数据采集,支持常见modbus、dde、opc、103、104等等一些常见的规约,对于暂不支持的规约,可以通过平台接口进行集成扩充。
1.1 为什么是平台?
平台无关,
Windows、linux、android支持
数据库无关,sqlite、odbc、mysql、oracle等数据库存储
与应用无关(数据库、客户端与应用无关)
提供基础构架(参数库、实时库、历史库、模型配置、参数配置、用户管理、事件处理、数据订阅、脚本处理、进程管理、连接管理、分布式组件、冗余组件等等)
扩充容易,后面以一个modbus前置通讯和一个DDE通讯程序为例详细介绍
组态统一灵活,支持Qt Quick、Qt UI、QWidget、
插件、资源、控件等等多种扩充方式
脚本功能丰富、强大,支持python、Qt Script、内置表达式等多种方式
支持功能块
编译、与matlab/xpc等实时系统集成
1.2 PANS特点
冗余:双机、多机冗余,任意配置
分布式:真正的分布式监控系统,实现任意的分布式配置,分层数据方式、集中数据方式、路由数据方式等等,随意扩充
单机100万点测试毫无压力
数据订阅,
界面反应迅速
多种程序调试手段、快速定位异常代码
1.3 PANS程序介绍
分布式数据处理pandb.exe
计算插件:pandbcommon、pandbscript等
服务插件:panhis、pandde、panmodbus等
统一组态编辑工具:grapheditor.exe
Qml运行时支持组件:graphcore.dll
属性编辑器组件:propertyeditor.dll
资源管理组件:resourcecommon.dll
统一组态运行工具:panvis.exe
调用Qml运行时支持组件:graphcore.dll
第二章 PANS应用介绍
通过一个例子,一步步的理解PANS的应用。
首先定义数据类型_rtvalue
新建数据_rtvalue的实例化数据点
使用周期性脚本对点周期性的赋值
使用触发性脚本对点的变化进行处理
下面从组态方面给出演示:
怎么建立元件,并且添加属性
怎么弹出自定义对话框
演示一个数据点的5种处理方法
两种方式的事件处理
图1、运行示例
2.1 数据类型组态
运行panvis.exe -o qml/test/objconfig.qml打开数据类型配置工具;
该工具也是标准的组态页面
2.2 数据点组态
运行panvis –oqml/test/pointconfig.qml
2.3 周期性处理脚本
在dbplugins\js目录下任意的建立js文件,其被解析,并被周期性调用
例如,下面的脚本将每250ms调用函数test1,test2各一次
function pandb_functions()
{
var funcs = new Array;
funcs.push("test1:250");
funcs.push("test2:250");
return funcs;
}
function test1()
{
db.setValue("test.asdf", Math.random()*10+80)
}
function test2()
{
db.setValue("test.fdsa", Math.random()*10+90)
}
2.4 表达式:值触发脚本
效率:在3万左右,单CPU负荷80%左右
实时数据的改变触发脚本执行
脚本可以产出事件、计算表达式等
下例,取点test.asdf的值,判断并产生事件,并且返回该值
var val=db.getValue("test.asdf");
if(val>89.95)
db.putEvent(5, "极大值 "+val, "test.asdf");
else if(val<80.05)
db.putEvent(4, "极小值 "+val, "test.asdf");
val
2.5 第一个元件 Flap
Flap,点击open,则在1.5秒内动画打开开关,并且状态指示灯渐变为绿色,点击close,反之。
先拖出3个矩形、一个圆形、两个
按钮点击中间的矩形,定义脚本:
Behavior on rotation {NumberAnimation { duration: 1500 } },即其rotation属性的改变为动画,用时1500ms;
点击中间的圆,定义脚本:颜色渐变
Behavior on fillcolor {ColorAnimation { duration: 1500 } }
按钮open的click函数:
flap.rotation=90
flap_s.fillcolor=“green“
按钮open的click函数:
flap.rotation=0
flap_s.fillcolor=“red"
OK。
2.6 第二个元件 Water
该元件,随着关联数据的变换,水面随着变化
画两个圆角矩形,一个透明、一个无边框
定义脚本:
water_r.y = 100-(value-80)*2-60;
water_r.height=(value-80)*2+60;
water_r.tooltip=value;
OK
2.6 第三个元件 Fan
风扇,外部数据指示其转动的时候转动,否则停止;
建立三个小椭圆、一个圆,设置颜色
脚本:
DBPoint{
name:datapoint
onValueChanged: {fan1.fan_running = (value & (1<<databit))}
}
SequentialAnimation on rotation
{
loops: Animation.Infinite
running: fan_running
NumberAnimation{
from:0; to:120; duration:300
}
}
2.7 模拟量组件
该组件关联模拟量,随着数据的变化而变化
有label、unit、bgcolor等属性可以设置
可以关联到命令
点击的时候,弹出对话框
将输入的参数作为命令下发
2.8 数字量组件
该组件关联数字量,随着数据的变化而变化
配置见右图:
可以关联到命令
点击的时候,弹出对话框
将输入的参数作为命令下发
不是结束的结束语
文档仓促而就,抛砖引玉
很多东西未涉及,有感兴趣的朋友,欢迎加入QQ群讨论
QQ交流群:146109197
本文档关联程序在QQ群共享下载。
谢谢!
2012年4月12日星期四