精华内容
下载资源
问答
  • 随着DCS、PLC等控制系统应用越来越广泛,控制系统组态工作也越来越多,其中监控操作界面“动态流程图”的组态是一项重要工作。控制系统动态流程图是非常重要的人机对话界面,操作人员通过它可以非常直观和方便地监控...

    随着DCS、PLC等控制系统应用越来越广泛,控制系统组态工作也越来越多,其中监控操作界面“动态流程图”的组态是一项重要工作。

    控制系统动态流程图是非常重要的人机对话界面,操作人员通过它可以非常直观和方便地监控生产工艺过程。因此,动态流程图需要满足:正确反应工艺流程图、显示信息量足够大、操作直观和方便、颜色协调和美观等条件。

    下面是我的一些关于控制系统动态流程图设计组态的经验分享。

    一、动态流程画面设计

    1.静态流程图画面设计

    首先要对工艺仪表流程图(P&ID)进行简化,在此基础上设计成静态流程图画面,设计静态流程图画面时对次要管线要进行简化,使之既符合工艺流程又简捷。画面布置要尽量均匀,避免过紧或过松。

    2.动态流程画面的功能设计

    动态流程画面的功能设计对不同的设计者会有所差别。但一般而言,需要有以下主要功能:

    (a)控制回路的显示和操作功能

    对控制回路需要显示其设计位号,并实时显示测量值、设定值、操作方式、工程单位、输出值、报警状态等,能对设定值、操作方式、输出值进行操作。

    (b)模拟量显示

    对模拟量显示回路需要显示其设计位号,并实时显示测量值、工程单位、报警状态等。

    (c)开关量显示

    对温度、压力、液位等热工参数越限报警,一般需要显示设计位号、正常状态、报警状态、报警确认后状态。

    (d)液位显示

    液位除采用数字显示外,一般需有随液位变化的棒图显示。

    (e)马达(泵)显示

    马达(泵)一般应采用不同的颜色显示其运行状态、停止状态、故障状态。

    (f)其他显示

    其它显示一般有最新报警显示、趋势显示、联锁显示、综合信号显示、设备位号、介质名称等。

    3.动态流程图画面的调出

    动态流程图画面的调出,除定义专用功能键外,一般可采用两种方式:一种是按流程衔接顺序调出;另一种是按动态流程图画面总菜单调出,即设计一幅流程图画面总菜单,从总菜单中分别调出各幅动态流程图画面,各动态流程图画面还必须能返回到动态流程图画面总菜单。

    二、动态流程画面组态

    1.确定颜色

    首先要确定动态流程图画面的底色,一般底色以灰色(或深灰色)为宜,色泽太浅或太亮对操作人员的视力影响较大,时间长了会感到不舒服。其次要确定各种物料管线和设备的颜色,各种静止设备一般采用统一颜色,各种物料管线的颜色应按国家、行业、企业的有关规定来确定。

    例如:某装置主要管线的颜色

    979e6c924e628c9bdc4058b546d0774a.png

    例如:某装置马达、泵的显示颜色

    19fd7180cda8a1b68cb3ad5bd4d601a3.png

    2.编制静态、动态子图

    在动态流程图画面中许多静态图形、动态图形会反复使用,因此,应先编制相关的子图,便于提高工作效率及统一性。

    编制子图是一项基础性的工作,需要仔细总结归纳出代表性的特怔、功能,对动态子图,还应进行测试,确认达到预想的功能后才能插入到主图中使用,下面介绍几种子图:

    (a)控制回路显示子图

    控制回路显示子图如图1所示,它能显示设计位号、测量值、设定值、操作方式,工程单位。

    图1:控制回路显示子图

    7cea87b3354db8a69a918ac4066271fc.png

    (b)模拟量显示子图

    模拟量显示子图如图2所示,它能显示设计位号、测量值、工程单位。

    图2:模拟量显示子图

    41ded8756a11c6ae3849da210bc798ab.png

    (c)流量累积显示子图

    流量累积显示子图如图3所示,它能显示设计位号、累积值、累积设定值、操作状态,工程单位。

    图3:流量累积显示子图

    be44471c93e5b5b3726506849174656d.png

    上述每个子图右上角显示报警状态,如“HH”、“HI”、“LO”、“LL”分别表示PV值的高高报、高报、低报、低低报,当报警时显示相应字符并红色闪烁,报警确认后不闪烁,不报警时不显示字符。

    子图种类还有很多,在此不一一列举。

    3.绘制流程图画面

    根据已设计好的静态流程图画面,在图形编辑环境下绘制静态流程图,并添加动态显示数据(子图)。带动态显示数据的子图可以是通用子图,插入主图后赋予具体数据点的标识(设计位号),就有对于这个设计位号的动态数据显示在子图中所规定的功能。

    对于控制回路、流量累积回路通过点击相应的子图显示区,能调出相应的操作控制面板,对控制回路可以进行操作方式切换、改变设定值和输出,对流量累积回路可以进行累积功能的启动、停止、复位操作。

    控制回路操作面板如图4所示。绘制流程图画面是一项工作量很大,而且也是比较繁锁的组态工作。

    001e5d16a369a705f65cc2eaad5bc13c.png

    三、动态流程图画面调试

    要使流程图画面能运行并达到动态效果,首先必须对其进行在线编译、检查,测试等,主要内容有:

    1、检查动态数据点。即对流程图画面中的数据点是否在系统中已存在进行检查,主要通过编译、保存等操作完成。由此可见,在编译、保存流程图画面之前,所引用的数据点在系统中必须要先建立。此外,要对每个动态数据点进行逐点测试,以确定动态数据显示的正确性。

    2、测试各种点击操作和调用功能。如与之连接上一幅流程图、或下一幅流程图,调用控制回路操作面板等。

    3、其它需要测试的功能。

    需要注意的是已经通过测试的动态流程图画面,当其中的动态数据点类型改变、或删除后再重新建立时,一般情况下应重新测试,否则就有可能出现不能显示或显示有错。

    以上是我的一点经验与体会,供大家参考。由于控制系统组态编程方法随系统不同而不同,实际应用中应按厂家提供的使用手册规定的方法进行编制、组态及调试。

    在整个控制系统编程组态工作中,编制、组态和调试动态流程图画面约占一半的工作量,而且也是一项综合性较强的工作。设计操作方便、显示直观、图面布置美观大方、颜色协调的动态流程图画面并非一件易事,需要对系统的软件平台有较深入的了解,熟悉控制方案以及工艺的基本操作,并需要不断修改完善和总结提高。

    本文属于原创,如需转载请联系原作者。

    作者简介

    邱老师,自控学堂创办人,教授级高级工程师,从事自控工程设计30余年,先后承担了几十个大中型工程项目的设计、施工安装指导、调试开车及新技术开发等工作,是国家科技进步一等奖获得者,获国务院特殊津贴、行业工程设计大师等荣誉称号,国家科技进步奖评审专家。

    关于自控学堂

    自控学堂专注于分享自控仪表工程设计领域的知识干货。

    关注【自控学堂】微信公众号获取更多知识信息(加助理微信号“happylife101010”可以送3本经典电子书)

    让我们一起成为自控高手吧!

    展开全文
  • 动态流程展示中可能用到的小图片。。。。 动态流程展示中可能用到的小图片。。。。
  • 基于动态流程框架的BPM研究,陈健荣,吕雪蕊,先进的流程管理技术能更好的促进企业优化全局价值链。通过研究BPM与信息技术的关联、剖析企业BPM的需求,本文提出一个全新的流程管
  • 在介绍印刷行业ERP系统应用现状的基础上,...方案的核心是允许重构物理结构的能力和采用动态流程的思想,在论述方案的必要性及可行性的基础上,详细论述了可作为行业性ERP系统参考方案的动态流程逻辑结构的设计与实现。
  • 扩展DFA在动态流程框架中的建模应用,陈健荣,吕雪蕊,对基于扩展的确定有限状态机在动态流程框架中的业务建模应用进行了较全面的论述。首先对有限状态机的数学模型以及涉及框架进行介
  • 在已有的动态工作流模型——黑盒模型的基础上进行改进,应用可插拔的子流程节点代替黑盒节点,提出了更加容易实现的动态流程模型——DSP(Dynamic SubProcess)模型,并成功地将其应用于网络化集成产品开发项目管理...
  • 近期导出动态流程图时在windows服务器上可见,把服务部署到linux上发现,流程图环节名称变成空白了,后来发现把流程图环节放大可解决此问题

    近期导出动态流程图时在windows服务器上可见,把服务部署到linux上发现,流程图环节名称变成空白了,后来发现把流程图环节放大可解决此问题

    展开全文
  • flowable动态流程缓存

    2020-09-28 17:26:34
    请教下各位大佬,我用flowable做动态节点,每个人在Task监听里面根据他的部门重新创建连续多级节点后存到processDefinitionCacheEntry里面后,重启服务器后缓存清空了怎么解决,如果存在redis里面应该怎么做,因为我...
  • 动态流程图-joint.js

    千次阅读 2018-12-29 11:01:57
    动态流程图-joint.js 前几天有个需求,继续JSON数据动态构造流程图,网上找了很久,最后决定用Joint.js来完成这一功能。 参考博文:https://www.cnblogs.com/qiuyagogo/p/9999701.html。 Joint 官网:...

    动态流程图-joint.js

    前几天有个需求,继续JSON数据动态构造流程图,网上找了很久,最后决定用Joint.js来完成这一功能。
    参考博文:https://www.cnblogs.com/qiuyagogo/p/9999701.html。
    Joint 官网:https://www.jointjs.com/
    1、预期目标

    动态生成这样的流程图
    2、需要文件。
    1、jquery.min.js
    2、Joint.css
    3、Loadsh.js
    4、Backone.js"
    5、Joint.js
    注:JS文件顺序一定不要乱发,否则会报错。 提供下载链接
    3、代码。

    	rows='[{ "pointX":"800","pointY":"100","name":"开始","type":"ellipse","id":"a1fd53fc-7286-4dd6-a99b-aa3aaf8a2c5d","parent":"1"},{"name":"第一步","type":"Rect","id":"744104ee-b3fc-4d81-8e82-32ae699d1d39","parent":"a1fd53fc-7286-4dd6-a99b-aa3aaf8a2c5d","pointX":"800","pointY":"200"},{"name":"第二步(1)","type":"Rect","id":"91bf7248-8c86-443c-a40d-7ff9e9b0fabb","parent":"744104ee-b3fc-4d81-8e82-32ae699d1d39","pointX":"700","pointY":"300"},{"name":"第二步(2)","type":"Rect","id":"91bf7248-8c86-443c-a40d-7ff9e9b0faba","parent":"744104ee-b3fc-4d81-8e82-32ae699d1d39","pointX":"900","pointY":"300"},{"name":"第三步","type":"Rect","id":"32c4123a-a378-4534-8afe-141d8b71e99a","parent":"91bf7248-8c86-443c-a40d-7ff9e9b0fabb,91bf7248-8c86-443c-a40d-7ff9e9b0faba","pointX":"800","pointY":"400"},{"pointX":"800","pointY":"500","name":"结束","type":"ellipse","id":"cd7fcafa-1f6b-47c9-94cf-626a55147a94","parent":"32c4123a-a378-4534-8afe-141d8b71e99a"}]';
    

    var graph = new joint.dia.Graph();

                //去掉属性
                var ElementView = joint.dia.ElementView.extend({
                    pointerdown: function () {
                        this._click = false;
                    },
                    pointermove: function(evt, x, y) {
                                this._click = false;
                    },
                    pointerup: function (evt, x, y) {
                       this._click = false;
                    },
                    pointerclick : function (evt, x, y) {
                       this._click = false;
                    },mouseover: function (evt) {
                             this._click = false;
                    }, mouseout: function(evt) {
                              this._click = false;
                    }
                });
                var LinkView = joint.dia.LinkView.extend({
                    pointerdown: function () {
                        this._click = false;
                    },
                    pointermove: function(evt, x, y) {
                        this._click = false;
                    },
                    pointerup: function (evt, x, y) {
                       this._click = false;
                    },
                    pointerclick : function (evt, x, y) {
                       this._click = false;
                    },mouseover: function (evt) {
                          this._click = false;
                    }, mouseout: function(evt) {
                          this._click = false;
                    }
                });
                //容器
                var paper = new joint.dia.Paper({
                    el: $('#myholder'),
                    width: $(window).width(),
                    height: $(window).height()-100,
                    gridSize: 1,
                    model: graph,
                    elementView: ElementView,
                    linkView:LinkView,
                    perpendicularLinks: true,
                    restrictTranslate: true
                });
    
                //构造图形
                var member = function (x, y, text, shape) {
                    var cell;
                    if (shape == "Rect") {
                        cell = new joint.shapes.basic.Rect({
                            position: { x: x, y: y },
                            size: {
                                width: 100,
                                height: 40
                            },
                            attrs: {
                                //边框,填充,边框宽度,样式
                                rect: {
                                    'stroke': 'black',
                                    'stroke-dasharray': 0
                                },
                                text: {
                                    //字体内容,颜色,粗细,大小
                                    text: text,
                                    fill: 'black',
                                    'font-weight': 'normal',
                                    'font-size': 20
                                }
                            }
                        });
                    } else if (shape == "ellipse") {
                        cell = new joint.shapes.basic.Rect({
                            position: { x: x, y: y },
                            size: {
                                width: 100,
                                height: 40
                            },
                            type: 'linearGradient',
                            attrs: {
                                //边框,填充,边框宽度,样式
                                rect: {
                                    'stroke': 'black',
                                    'stroke-dasharray': 0,
                                    rx:'20px',//边框椭圆
                                    ry:'20px'
                                },
                                text: {
                                    //字体内容,颜色,粗细,大小
                                    text: text,
                                    fill: 'black',
                                    'font-weight': 'normal',
                                    'font-size': 20
                                }
                            }
                        })
                    }
                    graph.addCell(cell);
                    return cell;
                }
    
                //构造连线
                function link(source, target) {
                    var cell = new joint.shapes.org.Arrow({
                        source: { id: source.id },
                        target: { id: target.id },
                        labels: [{ position: 0.5}],
                        router:{ name: 'orthogonal' },//折线类型
                        //vertices: share,
                        attrs: {
                            '.connection': {
                                'fill': 'none',
                                'stroke-linejoin': 'round',
                                'stroke-width': '2',
                                'stroke': '#4b4a67'
                            },
                            '.marker-target': {
                                fill: '#333333', //箭头颜色
                                d: 'M 10 0 L 0 5 L 10 10 z'//箭头样式
                            }
                        },
                    });
                    graph.addCell(cell);
                    return cell;
                }
                                rows=JSON.parse(rows);
                		//存放图形
                var map={};
                for(var i=0;i<rows.length;i++){
                    var meber=member(rows[i].pointX,rows[i].pointY,rows[i].name,rows[i].type);
                    map[rows[i].id]=meber;
                    if(rows[i].parent=="1"){}else
                    {
                        var parent = rows[i].parent.split(",");
                        for(var j=0;j<parent.length;j++){
                            //构造线
                            link(map[parent[j]],map[rows[i].id]);
                        }
                     }
                }
            画布      <div id="myholder"></div>      
    

    5、完成图形。
    资源地址;https://download.csdn.net/download/qq_33208533/10884981

    展开全文
  • 工作流平台中动态流程模型, 清华 软件学院研究成果
  • 动态流程对象

    2014-05-26 09:55:21
    流程填报能够实现动态地传入处理对象给流程,从而使用不同处理对象(例如不同报表)完成不同业务数据报送的功能。 例如,假设流程“开始 --> 销售人员上报 --> 销售经理审批 --> 总经理审批 --> 结束”是企业当中一个...

    流程填报能够实现动态地传入处理对象给流程,从而使用不同处理对象(例如不同报表)完成不同业务数据报送的功能。

    例如,假设流程“开始 --> 销售人员上报 --> 销售经理审批 --> 总经理审批 --> 结束”是企业当中一个较为通用的工作流程,即这一流程可以同时满足企业多种业务数据的报送和审批处理的工作需要,比如即可以进行销售合同的上报审批,又可以进行销售业务费用报销单的上报审批。当销售人员使用该流程时,如果向流程中传入“产品销售合同表”时就可以启动一个销售合同上报审批的任务,如果传入“销售费用报销单”则又可以启动一个费用报销上报审批的任务。

    上述流程功能的实现,是通过使用节点流程属性【处理对象】中的【动态对象】类型。

    流程的动态对象功能的使用,主要包括流程定义时的属性设置和启动填报任务时传入对象资源ID两个方面,下面将详细说明使用方法。

    设置流程节点的处理对象为动态对象类型

    在流程设计器中,选中流程中的节点,将该节点流程属性的【处理对象】设置为【动态对象】类型,这个流程就成为了一个可以动态地传入处理对象的流程。当使用此流程进行数据报送时,该节点的处理对象就将根据外部传入的资源来动态确定。

    特别说明:在流程中,允许【动态对象】类型的节点和【静态对象】类型的节点混合存在。即用户可以根据实际需要,将全部节点(注:除开始、结束节点)都设为【动态对象】类型,也可以将某一个或某几个节点设为【动态对象】类型而其余节点则设为【静态对象】类型。

    启动填报任务时传入对象的资源ID

    在使用动态对象的流程进行数据报送时,必须向启动填报任务的入口传入对象的资源ID,传入资源ID需使用一个名称为【resID】的参数。例如在系统中“产品销售合同表”这个报表资源的ID是45927,当需要传入这个资源对象给流程时就需要设置参数【resID】的值为45927。

    启动填报任务的入口配置方法可参见“使用流程进行填报”的“启动填报任务”。

    这里,以配置【资源中心URL链接】的启动填报任务入口为例,动态对象流程的配置方式如下图所示:

    特别说明:使用动态对象的流程进行填报时,流程中的所有【动态对象】类型的节点,其处理对象都是传入的这个对象。

    展开全文
  • JointJS动态流程

    万次阅读 2018-05-28 16:39:53
    最近公司有个导航项目需要做个流程图比较复杂的那种,作为一个前端小菜也是很蒙的,要求就两条一:动态加载流程图;二:动态连线;这两点要求也是难住了一阵呢,最后选择了jointJS,选着原因官网API很详细,代码量...
  • Biz BPMS-业务流程管理解决方案(Business Process Management Solution) 是盈合软件公司提供的面向金融与电信级的商业动态流程管理解决方案。 Biz BPMS致力于解决商业流程动态化、商业逻辑动态化的难题,它的做法是...
  • Spring boot activiti6.0 动态流程

    千次阅读 2018-07-05 09:31:00
    自定义流程,通过BpmnModel对象动态生成流程并在act_ge_bytearray中生成对应的流程图,CustomProcess为自定义类封装了流程名称和流程usertask,一下代码默认添加的都是usertask任务。 import ...
  • 运用flowable处理工作流时,难免会用到一个功能,就是查看流程图当前进展或者说走向,但是流程图输出到页面一直是乱码,有的大神说是字体问题,设置成宋体就好了: import org.flowable.spring....
  • 使用地图模块,展示一个动态流程图(简单demo) 1.先上效果图: 2.代码: html: &amp;lt;!-- ec --&amp;gt; &amp;lt;script src=&quot;../script/lib/echarts4.0/echarts.js&quot; ...
  • 日前IBM宣布推出动态商业流程管理工具WebSphere Business Services Fabric(简称Fabric),相较一般的商业流程管理工具,Fabric强调的是不需要重新建模就能动态调...
  • JointJS动态流程图升级

    千次阅读 2018-12-20 17:15:22
    之前写了一片JointJS的简单使用,最近解答评论的同时又重新查看了下发现有些不足,大半年不接触进行温习都要思考一下才想起来,感觉可能对初入学习...这种模式的流程图较为简单 准备还是 1.jquery 2.Lodash.js...
  • echarts网络拓扑图动态流程

    千次阅读 2019-06-26 09:49:21
    networkMap V1.0 直接下载打包代码: ...样式: 可直接粘贴下面代码,修改js和图片路径即可实现。 需要引入js echarts.min.js (非必须) purple-passion.js echarts主题文件(非必须) networkMap.js ...
  • 目录一、spring整合activiti二、动态创建流程三、集成Activiti Modeler四、整合diagram-viewer跟踪流程五、[demo源码](https://github.com/haochenchn/activitidemo) activiti工作流demo,数据库使用mysql,spring ...
  • 下载地址请访问官网:http://www.teamingsoft.com
  • 下载地址请访问官网:http://www.teamingsoft.com
  • c#解析类 Evaluator 实现动态流程

    千次阅读 2011-07-14 17:00:47
    这个叫Evaluator的类,可以实现你的功能。使用方法:Console.WriteLine("Test0: {0}", Evaluator.EvaluateToInteger("(30 + 4) * 2"));using System;using System.CodeDom;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,892
精华内容 6,356
关键字:

动态流程