由于公司最近做的項(xiàng)目都是同樣的,并且都采用S7-1500/S7-1200 與G120 系列做為主控系統(tǒng),所以我一直在思考一個(gè)問(wèn)題:如何標(biāo)準(zhǔn)化并且快速的編程調(diào)試。這樣可以極大的縮短項(xiàng)目的調(diào)試周期,減少公司工程成本,同時(shí)也免去工程師在項(xiàng)目上做過(guò)多的重復(fù)勞動(dòng);
開(kāi)題首先介紹一下SiVArc到底能幫助我們?cè)陧?xiàng)目中能夠做什么事情。具體的演示通過(guò)下文的圖文來(lái)跟大家說(shuō)明;
可以看到圖一的項(xiàng)目中只有一個(gè)PLC工程,并且OB1中只調(diào)用了一個(gè)"10007.G120無(wú)紡布設(shè)備"的FB塊;
圖二的步驟為在網(wǎng)絡(luò)視圖中添加一個(gè)②TP1200 Comfort HMI,并且將①處選擇為 連接 連接類型選擇為 HMI連接 ,然后通過(guò)拖拽的方式將HMI的以太網(wǎng)口連接到PLC的以太網(wǎng)口(此操作可逆),此時(shí)我們會(huì)看到③已經(jīng)建立一個(gè)HMI連接,如果再去HMI的 連接 中查看會(huì)發(fā)現(xiàn)TIA已經(jīng)為我們生成一個(gè)如③處一樣的連接,且連接名稱也相同;
由圖三可見(jiàn)HMI的項(xiàng)目并未新建任何畫面,到此下面就到見(jiàn)證奇跡的時(shí)刻了;
通過(guò)右鍵HMI工程選擇 生成可視化(SiVArc)然后在下一級(jí)菜單中選擇 生成可視化
此時(shí)會(huì)彈出一個(gè)窗口我們勾選HMI 和 PLC 然后點(diǎn)擊生成按鈕;
現(xiàn)在項(xiàng)目已經(jīng)自動(dòng)生成一個(gè)與圖一中程序段1 ?"10007.G120無(wú)紡布設(shè)備"FB 塊背景數(shù)據(jù)塊名稱相同的畫面 ① 主螺桿 且畫面的圖標(biāo)與以前有所不同,它的右下角會(huì)呈現(xiàn)一個(gè) SiV 的字樣。在此畫面中會(huì)生成一個(gè)面板實(shí)例② 且此面板實(shí)例的接口③中均已經(jīng)連接變量;此生成過(guò)程基本在10秒以內(nèi)。
相信大家通過(guò)上述的圖文已經(jīng)明白SiVArc 到底能為我們做一個(gè)什么樣子的工作,接下來(lái)為大家講述一下想要實(shí)現(xiàn) SiVArc 這樣的功能我們要怎樣去對(duì)PLC進(jìn)行編程。
首先編程我們要養(yǎng)成良好的習(xí)慣,一個(gè)設(shè)備中有大于或等于三個(gè)以上的重復(fù)單元,我們就可以使用模塊化的編程思路;例如有3個(gè)需要單按鈕啟停的星三角啟動(dòng)電機(jī),如果們采用一個(gè)程序段一個(gè)程序段那樣的去編寫程序,那么程序的可讀性就會(huì)很差,并且也加重了自身的工作量。
個(gè)人建議:在使用FB或者FC時(shí)我們對(duì)參數(shù)的命名也需要遵循一定的規(guī)范,不然在調(diào)試FBFC的時(shí)候容易把自己看暈;
我就以AutoStart舉例;
在Input,Output,InOut中采用的寫法均為AutoStart。
在Static中采用的寫法則為 _AutoStart。
在Temp中采用的寫法則為 _autoStart。
在Constant中采用的寫法則為 AUTOSTART。
實(shí)現(xiàn)SiVArc 對(duì)項(xiàng)目有一些要求,必須要保證項(xiàng)目中功能單元的重復(fù)度高,可以重復(fù)調(diào)用寫好的某一個(gè)FB塊,同時(shí)HMI界面也相似;
在我看來(lái)實(shí)現(xiàn)SiVArc 的FB塊有三種做法:
第一種:直接使用FB塊的背景數(shù)據(jù)塊,但是這樣有個(gè)缺陷不便于程序的規(guī)范化,所有與HMI連接的變量都是分布式的,所有的連接狀態(tài)都只能去背景數(shù)據(jù)塊中查看,如果項(xiàng)目使用的是SIEMENS HMI 與 SIEMENS PLC 則沒(méi)有很大的問(wèn)題,如果采用第三方的HMI則在做HMI的編程的時(shí)候就會(huì)非常繁瑣;
第二種:在編寫FB塊的時(shí)候?qū)B塊所需要連接到 HMI 的變量做成一個(gè) PLC數(shù)據(jù)類型(UDT) ,同時(shí)在FB塊的輸入輸出中新建此數(shù)據(jù)類型的參數(shù)①,之后新建一個(gè)HMIData 的DB塊用于專門與HMI建立連接②,這樣可以避免HMI連接的變量在程序中比較分散,便于查找與監(jiān)控;
第三種:第三種與第二種有點(diǎn)類似,但是在寫FB塊的時(shí)候完全不要去考慮如何連接HMI ,只需要按照功能編寫FB就可以了①,但是PLC數(shù)據(jù)類型這個(gè)步驟還是不能省略,之后同第二種一樣新建一個(gè)HMIData 的DB塊用于專門與HMI建立連接③;此時(shí)接FB塊的接口上連接的就是 HMIData 中實(shí)例化的數(shù)據(jù)類型相應(yīng)的地址;
了解了這三做法我們就依據(jù)第三種方式來(lái)做一個(gè)例子:
首先我們?cè)诔绦驂K中新建一個(gè)FB塊 名稱就叫 11006.星三角電機(jī) 11006的前綴表示這個(gè)功能塊號(hào),同時(shí)這樣做的好處為在程序文件夾下各個(gè)功能塊能夠依據(jù)前綴排序。
然后依據(jù)我上述的規(guī)范來(lái)新建各種參數(shù),并且保證紅色框線內(nèi)的鉤均已選中;
因?yàn)槲覀兊腇B塊有些管腳是給硬件IO使用的所以我們?cè)谛陆≒LC數(shù)據(jù)類型的時(shí)候可以選擇性的建立只在HMI上作用的參數(shù),在建立的時(shí)候我們最好是多建立幾個(gè) Struct 以來(lái)區(qū)分各個(gè)接口功能。
然后我們?cè)俳⑴cHMI建立連接的DB塊 HMIData 并且在此DB塊內(nèi)實(shí)例化剛才新建的 PLC數(shù)據(jù)類型,同樣保證紅色框線內(nèi)的鉤均已選中。
最后一步在OB1塊中實(shí)例化 11006.星三角電機(jī) 并且給功能塊的管腳連接上 HMIData或者 硬件IO 變量;
至此PLC編程這塊的工作就已經(jīng)完成
我們以上已經(jīng)介紹到如何使用標(biāo)準(zhǔn)化的理念編寫一個(gè)通用性較強(qiáng)的功能塊,那么今天我們將依據(jù)昨天示例中的功能塊(圖一)來(lái)編寫一個(gè) HMI面板。
編寫之前我們需要確定我們這面板里面需要包含多少個(gè)元素,以 11006.星三角電機(jī) 我們可以看出,我們所需的元素有一下幾點(diǎn):
已知有六種元素那么我們就可以開(kāi)始來(lái)創(chuàng)建一個(gè) HMI面板(圖二):
1.選擇右側(cè)導(dǎo)航器點(diǎn)擊庫(kù)①;
2.展開(kāi)項(xiàng)目庫(kù)→展開(kāi)類型→雙擊添加類型②;
3.選擇面板③;
4.選擇 面板/WinCC Runtime Advanced ④;
6.為此面板命名⑤(最好是與FB塊同名,以方便查找);
在點(diǎn)擊生成后TIA Portal 會(huì)進(jìn)入如下圖所示的一個(gè)界面(圖三),在圖中的①處是面板的編輯窗口。
在上圖的編輯窗口中我們拖入上述的元素并且將元素按照表格里面的第三欄命名(圖四①),然后按照自己的習(xí)慣排列這些元素后我們會(huì)得到如下圖所示的一個(gè)窗口(圖四)。
完成上述步驟后接下來(lái)就是將這些需要控制的點(diǎn)連接到 接口 上(仔細(xì)觀察圖四),但是連接變量也是有兩種方案,這兩種方案我先列出出來(lái),這兩種方案的各種特點(diǎn)我將在演示完這兩種方案之后給大家闡述。
第一種:直接連接的方式,也就使用上一章節(jié)中的 第一種 方式;
首先我們?cè)?接口 中為所需連接的變量添加屬性①,做好命名并且指定好數(shù)據(jù)類型。將②處 電機(jī)標(biāo)簽中所包含的對(duì)象中的文本拖拽至接口中動(dòng)態(tài)屬性中的電機(jī)名稱上。此時(shí)我們會(huì)發(fā)現(xiàn)中間空白部分會(huì)生成一條帶右箭頭的線由①→②處,這就意味著我們已經(jīng)將此屬性關(guān)聯(lián)到接口中。
繼續(xù)添加下一個(gè)動(dòng)態(tài)屬性 延時(shí)時(shí)間
第一步①我們選中延時(shí)時(shí)間的I/O域,在屬性②中的常規(guī)欄目中選擇變量③,單擊變量窗口中的下拉列表,④選擇延時(shí)時(shí)間⑤。
之后我們通過(guò)同樣的操作將所有的功能都連接至接口里的動(dòng)態(tài)屬性,連接完畢后我們將得到這樣一個(gè)界面(圖七)。
所有項(xiàng)都連接完畢后,選中面板(點(diǎn)擊面板的空白處)圖八①,選擇 插件② ,此時(shí)SiVArc屬性中的屬性接口會(huì)出現(xiàn)四個(gè)動(dòng)態(tài)屬性,這四個(gè)動(dòng)態(tài)屬性就是來(lái)給我們連接 SiVArc 變量表達(dá)式的。
之后我們單擊右上角的感嘆號(hào)(圖九)①,選擇發(fā)行版本②。
第二種方式:在接口中的動(dòng)態(tài)屬性中采用UDT (PLC數(shù)據(jù)類型)。
在HMI面板中使用UDT的話我們首先需要將在項(xiàng)目中的UDT添加到項(xiàng)目庫(kù)中,也就是將圖十中的UDT①拖拽至②處;
然后我們?cè)诮涌谥行陆ㄒ粋€(gè)動(dòng)態(tài)屬性,它名稱就叫 11006.星三角電機(jī)UDT 他的數(shù)據(jù)類型則選擇我們?cè)陧?xiàng)目庫(kù)中新建好的 11006.星三角電機(jī)UDT。
我們?cè)賹?shù)據(jù)如同第一種方式那樣關(guān)聯(lián)起來(lái),此時(shí)我們會(huì)發(fā)現(xiàn)圖十二①處SiVArc屬性中的屬性接口只有兩個(gè)動(dòng)態(tài)屬性,其中電機(jī)名稱是必須另外新建的。
相信通過(guò)上述的兩種方式的描述大家也能看出這兩種方式的,明顯的區(qū)別,前者更加的適應(yīng)于SiVArc,因?yàn)樗慕涌谧兞恐兴顚懙膮?shù)均為自動(dòng)生成的,雖然他比較多,但是并會(huì)不加重工作量。而第二種則應(yīng)用則適用性更強(qiáng),它不僅能夠適用于SiVArc,而且在做非SiVArc項(xiàng)目時(shí)也能給我們帶來(lái)便捷,因?yàn)樗慕涌谧兞枯^少,能夠減輕一部分的工作量
至此HMI面板這塊的工作也就已經(jīng)完成。
編輯:黃飛
?
評(píng)論
查看更多