楼主看看我下面的论文,从理论上解决你的问题。
運行時組態技術探討
--在傳統人機介面實現自由編輯工藝模式的應用實例
一,問題的提出
運行時組態是組態軟體技術近些年提出的新概念.運行時組態是指在運行環境下編輯工程,或對已有工程進行修改,添加新的功能.也就是說運行時組態是在組態軟件運行環境中直接修改工程.運行時組態改變了已往必須進入複雜的組態及控制環境修改工程應用的歷史,給組態軟體帶來了新的活力,並預示著組態軟體新的發展方向.
先以開發成型機械手實際應用為例來說明什麼是運行時組態,為甚麼需要應用運行時組態的技術.
成型機械手是專應用於成型機的取放料的自動化設備,工作環境要求苛刻,需要長時間高精,高速運行.更主要的是,相對於一般自動化設備按固定工藝模式一步步運行的方式,成型機械手其生產工藝過程變化多端.如果按傳統固定工藝模式編程,一旦需要修改或添加新的工藝,就必須對工程及控制系統進行修改.對於簡單工藝的設備來說這也許可行,但對於像成型機械手這類工藝複雜多變的設備就很費時力,而且極易出錯.
傳統的組態過程是這樣的,工程組態好並交付用戶使用後,工程中包括的功能就固定不變了.如果要擴充,修改工程的功能,就必須請熟悉該工程的工程師進入組態獲控制環境進行修改.
假如我們換一種編程方式呢?比如提供這樣一個工程環境,在此環境中工程師有預見的設計好該工程所有最基本功能(基本動作),實際應用時由現場工藝人員根據實際需要來自由組合生產工藝以達到最終控制的目的.
如果真的的實現這種方式,這確實比靠工程師預先編好工藝的方式靈活,簡單的多.這種由固定工藝轉換到自由工藝編程的模式就是運行時組態技術所要解決的.
必須說明的是,這種運行時組態技術雖說在一些通用型人機介面上已有或多或少的應用,但這些都是基於像Microsoft windows這種高級編程環境的組態軟件,如紫金橋監控組態,崑崙組態等.但一些設備常用的人機介面如got1000,preface等必竟是專用人饑操作介面,它們不像那些高級組態環境的人機介面那樣有豐富的軟件,程式庫或數據庫來支援.
因而,本文所要解決的就是應用運行時組態的思路,方法,技術來實現在傳統人機介面由固定工藝到自由工藝編程模式的轉變.
二,運行時組態的優點
1,減少編程工作量.對於一具體工程項目,如果能將項目中用到的功能(或動作)歸納出來做成模組,那麼我們無須等到瞭解整個工程應用並做完才可以將其投入運行了.即只要把工程中需要的模組準備好,你就可以讓最終用戶(如工藝人員,設備操作員等)在運行時自己增加,編輯模組了,讓用戶在運行環境中修改和完善,滿足實際工藝需求.該工作模式充分發揮了組態工程師和工藝人員自身的優勢,快速完成工程項目.
2,解決了動作及運行參數不確定問題.有些工程本來就存在這樣的不確定性,我們不可能用常規的辦法將各種情況事先窮舉出來,也不可能每次改變都要求現場的技術人員進入複雜的開發環境進行修改,運行時組態對此是非常適用的.
3,維護方便.傳統意義的組態是在工程組態完成後,應用程式的功能已經固化好了.如果需要修改或增加新功能,還必須進入開發環境重新配置.這一般需要精通開發環境,並且熟悉該工程的工程師來完成.如果工程不是本單位元完成的,還要涉及到升級改造,甚至另立項目的費用.採用運行中組態技術後就可以由工廠的一般技術人員來完成.
4,實現軟件標準化.自動化控制軟件標準化是管理階層,開發人員,維護保養甚至應用人員所不斷追求的目標。組態過程中建立的各個模塊就是實現軟件開發標準化的基礎.
三,安全性問題
其實運行中組態技術一個最需要解決的問題就是安全,在運行時可以隨便增加,修改,刪除工程中的模組或參數,確實是很危險的.如果沒有保護措施,運行時就會帶來很多的麻煩.我們可以通過以下兩項安全措施來保護運行時的工程.
1,控制系統保護措施:
在控制系統層面對一些相互間會產生危險的動作作遮罩,甚至排他性處理.做好基本安全保護,如軟,硬體上的互鎖.
2,工藝組態時保護
由於運行時的模塊都是是由組態工程師生成的,因此運行時組態的自由度完全由組態工程師掌握.這就要求組態工程師對運行時提供的手段要加以限制,不要提供過多的,不必要的靈活性.同時對編輯過程提供必要的保護措施,如錯誤提示,組態後工藝無法保存等.
總之,組態人員既要給用戶提供擴展功能的手段,又要對其加以足夠的限制,以保證系統安全運行.
四,運行時組態的實現
應用於自動化中的人機介面是最基本,最常用的組態技術.它雖不像那些專門的組態環境軟件那樣功能豐富,應用範圍廣;但它以高穩定性,強適應性,低價格在自動化領域仍具有不可動搖的地位.好的,貴的並不一定是最有用的或最有效的.正於無論計算技術(特別是軟件技術)怎麼發展,PLC技術平臺在自動化領域永遠也不會過時一樣.
雖說技術,理念在不但發展,但這並不就意味著舊的技術平臺需要淘汰.其實我們要做的是用哪些新的理念,技術來改造,提升這些舊平臺.因而這些工作需要自動化工程師自己去做,人機介面組態環境並沒有提供現成的模版來實現運行時組態的應用,這種改造當然是很費時力的工作.
我們知道人機介面是實現現場操作人員操作,控制設備的電子介面.它主要提供虛擬的按鈕控制,數據輸入,狀態監控等功能.雖說人機介面也提供一些數據處理功能,但它畢竟沒有個人計算機那樣強大的數據處理能力.因此人機介面僅能看作是一種靜態處理技術,還不能完全算得上是動態處理技術.
好在一般人機介面都提供有二次系統開發介面,如腳本語言(有的稱作巨集指令).這些二次開發介面提供類似高級編程語言的編程環境,看到那些熟悉的”變量”,”數組”,”函數”,”語句”,甚至”指針”,我們是否看到勝利的曙光?
是的,我們有理由相信我們最起碼也成功了一半.有了這些”指令”我們就可實現人機介面物件後台處理能力,實現各種介面編輯(如插入,刪除)功能,邏輯判斷,數據計算,狀態提醒等能實現運行中組態所必有的一些基本處理能力.
更一步的,要實現友好,簡潔的組態介面,我們還要充分應用人機介面組態環境本身亦提供的變址(或索引)功能,配方功能等等.
所有這些技術和功能的結合應用,加上運行中組態這類新的理念,我們有理由相信:在傳統人機介面上也能(最起碼也是近似)實現運行中組態的最終目的.
必須補充說明的是,運用配方功能實現數據的管理是我們常用到的技術或方法,如對保存各個工藝配方數據.但必須說明的是這些處理是靜態的而不是動態的,這與運行中組態的思路還是不一樣.但,事實上也正是因為這種配方處理功能讓我找到一個邁向成功的視窗.
下面的成型機械手案例就基本上實現或應用了前面所闡述的一些技術,理念.
五,成型機械手上的應用
下面就是成型機械手實現自由編輯工藝模式這種運行時組態技術應用的主要畫面.
組態環境不但提供各個模塊的組態功能,還提供各個模塊的參數配置(如果需要的話)功能.如上面組態後第5個模組”主臂升降”,在組態過程中隨時可以自由修改模快的配置參數,只需要你點擊此模組.
上面畫面配備有靈活的編輯功能,”模組”物件,相應序號,指引光標,上下移動顯示頁面等等都可以根據用戶實際編輯需要靈活使用,即提供所謂”所見即所得”的編輯環境.
同時組態環境還提供組態過程自動監控,錯誤判斷功能供用戶組態時參考或提供組態安全保護.
下面是一個組態模組其控制系統PLC相對應處理模組例子.
六,總結
組態軟體一般稱為通用組態軟體.”通用”一詞表示它可以適合各種應用領域.不同的應用領域雖然存在許多共性的東西,但是應用場合特別是工藝的差異是客觀存在的.差異表現在畫面的組織形式,組成部件,構建邏輯等等各方面.如果讓組態軟體能夠包羅萬象來適應中應用,那麼呈現給用戶的軟體將過於複雜,最終會使得組態軟體本身的友好性太差,失去其存在的意義.如前所述,運行時動態生成的元素是在組態環境下生成的,自動化工程師可以在組態環境下構建其應用領域所需模組,然後讓工藝人員運用自己熟知的工藝在運行時搭建自己的應用.
脫離具體的PLC控制軟體, 從宏觀角度來理解自動控制系統,面向工藝來設計控制系統是自動化工程師應該追求的最高目標.我們知道PLC程式不過是你設計工程項目的工藝而已,有工藝要求才可能有程式,程式只是設備工藝的具體反應.瞭解了工藝要求也就等於瞭解了程式.編程不過是個規則,要你用這個規則把設備工藝寫出來,因此你重要是瞭解設備的工藝和具體使用PLC品牌的功能.當你充分瞭解了設備工藝,設計完電氣圖紙,你的設計任務可以說基本完成了,剩下的就是看看PLC編程規則,根據工藝把程式寫出來.
運用運行時組態理念或技術就是實現這個終極目標的具體表現形式.
楼上的高人,本人太佩服您了!真正的高手啊!
我前些时候写过这样的程序,用PLC平台作一个通用的程序,用户可以根据工艺在人机界面上随意设定动作顺序,及动作延时时间.需要的输入元件等都可以随意组合,伺服步进电机运行参数也可以任意设定.
其出发点是开发一个通用的平台,用户只要熟悉工艺流程,不用了解PLC编程知识.就可以完成一些不是很复杂的机器的电气控制.
可因为水平有限,缺乏理论指导,所作的程序用户操作起来还不够方便,通用性也不够,再就是如您所说,安全性也没办法保正,总的来说就是不够完善.不尽如人意,
认真阅读了你前面的文章,好像是一个在黑暗中的人看到了一盏明灯.有好些东西以前都是凭经验去想,只有模糊的概念.而你却有了系统的理论来说明.
有好些问题想向您请教,可否告知联系方式!
我写通用程序时主要是用变址寄存器与字处处理指令及技巧性的运用一些功能指令,虽然程序还很不完善,但已经做成了产品在销售了,对于一般开关量控制的机器花三五分钟就可以在触模屏设定一个程序了。
写通用程序时的几点体会:
1. PLC、触模屏对这种应用支持不够。有很多的固有限制,不像计算机软件开发自由度很大。PLC、触模屏各品牌都有一些方便这种应用的功能,但都不是很全面,虽然可以用一些技巧来弥补,可撑握起来难度也大。如PLC的变址寄存器对这种应用作用很大,可像三菱PLC FX系列的才二个,不够用。再如触模屏能输入中文的没有几种品牌可以做到,对应的用户需更改界面文字的功能不能实现。
2.只能钟对某一行业某一类机器,不能大范围通用,可这样通用性就不够;通用范围大,程序就会过于复杂,PLC难以完成。也就是通用性与程序复杂度这间的矛盾
3.通用程序对顺序控制比较好处理,对运动控制和模拟量控制不大容易把握。
脑子不大好使,一时想不起来了,希望各位高手,多出来指点,多讨论一下关于通用程序的一些想法。
楼主,我没有“可任意顺序输出”三菱,不过如果你想学这种编程方法的话,我或许可以跟你一起讨论下,提点意见,
可以把你的程序给我看看不?其实用那种品牌的PLC写,没有多大关系的
QQ :364964864
楼上的高人,本人太佩服您了!真正的高手啊!
我前些时候写过这样的程序,用PLC平台作一个通用的程序,用户可以根据工艺在人机界面上随意设定动作顺序,及动作延时时间.需要的输入元件等都可以随意组合,伺服步进电机运行参数也可以任意设定.
其出发点是开发一个通用的平台,用户只要熟悉工艺流程,不用了解PLC编程知识.就可以完成一些不是很复杂的机器的电气控制.
可因为水平有限,缺乏理论指导,所作的程序用户操作起来还不够方便,通用性也不够,再就是如您所说,安全性也没办法保正,总的来说就是不够完善.不尽如人意,
认真阅读了你前面的文章,好像是一个在黑暗中的人看到了一盏明灯.有好些东西以前都是凭经验去想,只有模糊的概念.而你却有了系统的理论来说明.
有好些问题想向您请教,可否告知联系方式!
我写通用程序时主要是用变址寄存器与字处处理指令及技巧性的运用一些功能指令,虽然程序还很不完善,但已经做成了产品在销售了,对于一般开关量控制的机器花三五分钟就可以在触模屏设定一个程序了。
写通用程序时的几点体会:
1. PLC、触模屏对这种应用支持不够。有很多的固有限制,不像计算机软件开发自由度很大。PLC、触模屏各品牌都有一些方便这种应用的功能,但都不是很全面,虽然可以用一些技巧来弥补,可撑握起来难度也大。如PLC的变址寄存器对这种应用作用很大,可像三菱PLC FX系列的才二个,不够用。再如触模屏能输入中文的没有几种品牌可以做到,对应的用户需更改界面文字的功能不能实现。
2.只能钟对某一行业某一类机器,不能大范围通用,可这样通用性就不够;通用范围大,程序就会过于复杂,PLC难以完成。也就是通用性与程序复杂度这间的矛盾
3.通用程序对顺序控制比较好处理,对运动控制和模拟量控制不大容易把握。
脑子不大好使,一时想不起来了,希望各位高手,多出来指点,多讨论一下关于通用程序的一些想法。
你的思路很清晰.
變址功能是實現這類思路的核心技術之一.
如果變址寄存器不夠用,可利用堆栈技術重複應用同一個變址寄存器,即可用數據機存器暫存變址寄存器的值.
面向工藝來設計控制系統是自動化工程師應該追求的最高目標.
从工艺的角度来看编程可以分为固定工艺编程模式和自由工艺编程模式。
固定工艺编程模式是人们常常采用的编程模式,也就是设备的运行按照工程师编好的程序一步步“顺序”运行。
但对于那些工艺运行顺序常常变化的情形,如果还采用传统的固定工艺编程模式的话,那将是一个很烦琐的过程,而且极易出错。
特别是增加新的功能或工艺,就必须对原程序进行艰苦而复杂的修改,毕竟在开发初期你不可能对各种工艺流程都了解。
如果我们提供一个编程环境,由现场操作员或工艺员按照他们熟悉的“界面或语言”来自由组织工艺流程,那就不是能很容易解决那些变化,复杂生产工艺设备的编程吗?这就是自由工艺编程模式。
应用运行时组态的理念可以实现自由工艺编程。
所谓运行时组态是指在运行环境下编辑工程,或对已有工程进行修改,添加新的功能.也就是说运行时组态是在组态软件运行环境中直接修改工程.
具体来说,经过人机界面的二次开发,提供给工艺员一个实现“所见即所得”的编程环境。