詳細(xì)介紹
西門子新疆觸摸屏代理商 西門子新疆觸摸屏代理商
追求,,追求精確
要通過“嚴(yán)格”的檢驗(yàn)程序,以可編程控制器(PLC)產(chǎn)品為例,,在整個(gè)生產(chǎn)過程中針對(duì)該類產(chǎn)品的質(zhì)量檢測(cè)節(jié)點(diǎn)就超過20個(gè),。視覺檢測(cè)是數(shù)字化工廠*的質(zhì)量檢測(cè)方法,相機(jī)會(huì)拍下產(chǎn)品的圖像與Teamcenter數(shù)據(jù)平臺(tái)中的正確圖像作比對(duì),,一點(diǎn)小小的瑕疵都逃不過SIMATIC IT品質(zhì)管理模塊的“眼睛”,。對(duì)比傳統(tǒng)制造企業(yè)的人工抽檢,這顯然要可靠又快速得多,。”
1. 提出問題
圖1
問題1:M10.2能否被置位,?
圖2
問題2:S_CU計(jì)數(shù)有無問題,M6.2能否被置位?
先來了解一下都有哪幾個(gè)計(jì)時(shí)器,,以及它們的特性如何
圖3
2. 計(jì)時(shí)器描述
從以圖3可以看出5個(gè)計(jì)時(shí)器的基本特性,,可以簡(jiǎn)單的從中挑選與控制工藝相符合的計(jì)時(shí)器使用,如果想了解計(jì)時(shí)器的詳細(xì)信息,,可以選擇計(jì)時(shí)器,,并按F1看幫助信息中的具體邏輯圖。
以計(jì)時(shí)器SD為例,,參見圖4
圖4
我們從中可以知道,,當(dāng)觸發(fā)端S的信號(hào)為上升沿時(shí),觸發(fā)計(jì)時(shí)器開始運(yùn)行,,時(shí)間結(jié)束后計(jì)時(shí)器輸出端為1,,S信號(hào)為下降沿時(shí),,計(jì)時(shí)器輸出端為0
那么根據(jù)此情況,以圖1為例,,咱們可以把剛才的梯形圖程序通過時(shí)序圖表示如下圖5
其中a,b之間是在掃描此段程序兩個(gè)周期之間的間隙,。
圖5
3. 計(jì)時(shí)器與循環(huán)程序的關(guān)系
經(jīng)過分析,可以看出,,M10.2(S)是可以被置位的,,那為什么沒有看見其被置位呢?
大家注意,,這里t的時(shí)間是8s,我們知道,,一個(gè)程序的掃描周期很短,,可能才十幾----幾十毫秒,在線時(shí)候可以監(jiān)控到Scan Cycle Time,。如圖6
圖6
那這個(gè)時(shí)間不是遠(yuǎn)遠(yuǎn)超過了掃描周期么,?
我們又知道,如果程序掃描周期大于大掃描周期監(jiān)控時(shí)間Scan Cycle Monitoring Time,,那么將會(huì)觸發(fā)中斷,,甚至造成CPU進(jìn)入STOP狀態(tài)。
其實(shí),,計(jì)時(shí)器的執(zhí)行是異步于OB1循環(huán)掃描的,,只要計(jì)時(shí)器運(yùn)行后,在每一周期掃描到計(jì)時(shí)器的觸發(fā)端S信號(hào)如果為1,,那么計(jì)時(shí)器就將在此周期繼續(xù)計(jì)時(shí),。因此,它對(duì)于大周期監(jiān)控時(shí)間并沒有太大的影響,,只是調(diào)用語句時(shí)占用了少許us的時(shí)間,。
怎么來驗(yàn)證這個(gè)說法呢?就是說計(jì)時(shí)器的執(zhí)行并不同步于OB1程序掃描周期,。
1,,可以在程序中加入若干SFC47增大程序掃描周期(保證小于Scan Cycle Monitoring Time),通過監(jiān)控計(jì)時(shí)器的時(shí)間,,可以看出,,計(jì)時(shí)器的時(shí)間是跳躍式的變化的,也就是說,,也就是說,,當(dāng)程序掃描完計(jì)時(shí)器,繼續(xù)往下進(jìn)行時(shí),,計(jì)時(shí)器滿足觸發(fā)條件進(jìn)行計(jì)時(shí),,此周期往后的計(jì)時(shí)是一直在進(jìn)行的,。
2,可以通過在中斷來證明
3,,通過程序死循環(huán)監(jiān)視計(jì)時(shí)證明
4,,通過多個(gè)計(jì)時(shí)器監(jiān)視時(shí)間來證明等等各種方法
那說明了是異步的有何作用呢?
說明了剛才咱們分析程序所作的時(shí)序圖有一定的問題,,因?yàn)樵蹅兊姆治鍪前凑粘绦蛞徊讲酵逻M(jìn)行的,,相當(dāng)于是同步進(jìn)行的。而實(shí)際在程序執(zhí)行時(shí),,掃描周期是比較短的,,所以計(jì)時(shí)器是在其中的某一個(gè)周期里計(jì)時(shí)器計(jì)時(shí)結(jié)束時(shí)輸出被置位為1,那么因?yàn)檫@樣,,所以對(duì)我們編寫程序就會(huì)有一定的要求,。也就有了下面一個(gè)問題
4. 計(jì)時(shí)器動(dòng)作的時(shí)刻
計(jì)時(shí)器的輸出端是什么時(shí)候被置位呢,什么時(shí)候起作用呢,,比如,?
是等到重新掃描到計(jì)時(shí)器塊,計(jì)時(shí)器執(zhí)行完畢才置位,,還是不用重新掃描到計(jì)時(shí)器,?程序中直接掃描的T40節(jié)點(diǎn),它就已經(jīng)被置位了呢,?
1,,我們可以設(shè)置OB35的看門狗時(shí)間為2000ms, 如圖7
OB35里觸發(fā)計(jì)時(shí)器T40,的開點(diǎn)給線圈M6.0,,如圖8
OB1里的開點(diǎn)給線圈M6.1,,M6.0開點(diǎn)給線圈M6.2,如圖9
經(jīng)過試驗(yàn),,觀察看到,,當(dāng)T40的Timer運(yùn)行結(jié)束后M6.1立刻就被置位了,而M6.0和M6.2會(huì)等到再次掃描到OB35,,才會(huì)被置位,。
可得出結(jié)論,當(dāng)計(jì)時(shí)器T40計(jì)時(shí)結(jié)束時(shí),,CPU掃描到時(shí),,它就已經(jīng)為1了,不需要等到掃描計(jì)時(shí)器S_ODT(SD),。
圖7
圖8
圖9
2,,也可以在OB1里調(diào)用多個(gè)“wait”代碼讓OB1的掃描周期足夠大,如5s,,先調(diào)用一個(gè)SD T2 1s,,然后調(diào)用若干“wait”,,大概持續(xù)2s,用T2開點(diǎn)觸發(fā)一個(gè)線圈如M10.0,,再調(diào)用若干“wait”,,大概1s,然后再調(diào)用一個(gè)SD T3,,可以看出再T3還沒有開始計(jì)數(shù)時(shí),,M10.0已經(jīng)被置位了。
計(jì)時(shí)器在OB30—OB38里呢,?
是一樣的,。
可以在OB35里使用SD計(jì)時(shí)器,可以發(fā)現(xiàn),,當(dāng)程序調(diào)用OB35時(shí),,計(jì)時(shí)器開始運(yùn)行,把OB35執(zhí)行時(shí)間和計(jì)時(shí)器時(shí)間設(shè)置大些,,可以發(fā)現(xiàn),只要每次在掃描的計(jì)時(shí)器觸發(fā)端時(shí),,條件滿足,,計(jì)時(shí)器就開始運(yùn)行,直到下一次掃描OB35時(shí)再掃描到此條件為止,。
可以把計(jì)時(shí)器時(shí)間設(shè)置足夠大,,當(dāng)計(jì)時(shí)未結(jié)束前把它的觸發(fā)端變?yōu)?,那么其計(jì)時(shí)停止,,直到再次觸發(fā),。
可以得出計(jì)時(shí)器的運(yùn)行只與每次掃描到它的觸發(fā)端有關(guān)。掃描完觸發(fā)端后,,計(jì)時(shí)器的運(yùn)行就與觸發(fā)端無關(guān)了,,直到下一次再次掃描到此觸發(fā)端。
5. 分析程序
了解了以上的一些基本知識(shí),,咱們?cè)賮砜纯磩偛艌D1中的程序,。
一個(gè)CPU的掃描周期是可以計(jì)算的,根據(jù)不同的配置和數(shù)據(jù)的讀取,,可以計(jì)算出不同的周期,,在PLC運(yùn)行時(shí),每個(gè)周期的大小也是不一樣的,,可以大致計(jì)算出范圍,,可以根據(jù)每條語句來計(jì)算程序的執(zhí)行時(shí)間,再加上相應(yīng)的循環(huán)周期檢測(cè)點(diǎn),,周期中斷,,訪問過程映像區(qū),,通信負(fù)載等。這些時(shí)間的長(zhǎng)短與CPU型號(hào)及使用方式有關(guān),。
使用PS307 5A,,CPU315-2PN/DP (315-2EH13-0AB0 V 2.6.50)為例。以下所有時(shí)間都以此配置為標(biāo)準(zhǔn),。
我們把圖1的梯型圖換成語句表來分析指令執(zhí)行的過程,。
圖10
一個(gè)CPU的掃描周期的計(jì)算可以根據(jù)以下幾個(gè)過程來進(jìn)行
圖11
A.操作系統(tǒng)初始化循環(huán)時(shí)間監(jiān)視
B.掃描PIO
C.掃描PII
D.執(zhí)行用戶程序,并執(zhí)行程序中定義的操作
E.掃描周期檢測(cè)點(diǎn)操作系統(tǒng)時(shí)間(周期結(jié)束時(shí)執(zhí)行掛起的任務(wù),,如裝載和刪除塊)
F .CPU返回到周期開始的時(shí)間點(diǎn),,并重新開始循環(huán)周期監(jiān)視
在以上的步驟中都是有時(shí)間的,雖然很小,,但是也占用時(shí)間,。可以根據(jù)不同的硬件組態(tài),,參照
CPU Specifications手冊(cè)進(jìn)行計(jì)算,,
為了便于計(jì)算和理解,咱們以理想狀態(tài)來計(jì)算,。假設(shè)CPU周期中的A,,B,C,,E,,F(xiàn)的時(shí)間為固定的數(shù)值X us。
只分析程序里的”D” --用戶程序中的命令執(zhí)行,。
程序是順序掃描的,,從Network 1—3依次進(jìn)行,
以*個(gè)周期開始時(shí)來分析,,首先掃描Network 1中T3計(jì)時(shí)器為0,,因此閉點(diǎn)使能,T2開始計(jì)時(shí)(0-8S),,但此時(shí)掃描T2輸出為0,,
因此掃描到Network 2中T2開點(diǎn)不使能,掃描到T3不執(zhí)行,,
Network 3中T3開點(diǎn)不使能,,M10.2為0。
到此過程[0.4+0.3+2.4+0.3+0.3+2.4+0.3+0.2(或0.9)] us = 6.6 (或7.3) us,。
注意:T2一直在累加時(shí)間,,相當(dāng)于此時(shí)T2計(jì)時(shí)也到達(dá)6.6(或7.7)us。
然后加上剛才的時(shí)間X us,那么一個(gè)周期可以認(rèn)為是t=X+6.6 (7.7) us,。X大于7 us,,可以看出語句的執(zhí)行是在很短的時(shí)刻進(jìn)行,所以大家在編程時(shí)常用的每個(gè)計(jì)時(shí)器都會(huì)經(jīng)過若干個(gè)程序掃描周期,。
因?yàn)門imer是異步的,,所以T2的時(shí)間應(yīng)該在一個(gè)周期里也為t=X+6.6 (7.7) us,那么根據(jù)上面的程序看,,因?yàn)門2設(shè)置為8s,,所以應(yīng)該在大概m=8s/[ X+6.6 (7.7)]us個(gè)周期時(shí),T2執(zhí)行完畢,。
T2 假設(shè)優(yōu)秀情況下,,T2執(zhí)行完畢的時(shí)刻是在第m個(gè)周期內(nèi),
A.如果發(fā)生在Network2的T2開點(diǎn)之前,,那么掃描到此 T2開點(diǎn)的語句時(shí),,T2的輸出變?yōu)?,執(zhí)行下一條語句T2開點(diǎn)就會(huì)閉合,,T3開始計(jì)時(shí),。
B.如果T2執(zhí)行完畢的時(shí)刻是程序掃描到T2開點(diǎn)語句之后才發(fā)生的,那么因?yàn)楹竺娴某绦驔]有對(duì)T2的操作,,只有在下一個(gè)m+1周期,,才能檢測(cè)到T2的變化。T3開始計(jì)時(shí),。
T3開始計(jì)時(shí)的前提條件是T2開點(diǎn)閉合,假設(shè)在第m個(gè)周期里,,T3開始計(jì)時(shí),,那么同樣,要經(jīng)過大概m個(gè)周期左右,,T3才能執(zhí)行完畢,,到此時(shí),已經(jīng)經(jīng)過了2m個(gè)周期,,因?yàn)镸10.2線圈是由T3開點(diǎn)的閉合信號(hào)來置位的,,那么現(xiàn)在就來分析一下什么時(shí)候可以發(fā)生此動(dòng)作。
注意:在此例子程序中,,在Network1-3中都有對(duì)T3的操作
T3 假設(shè)在優(yōu)秀情況下,,T3執(zhí)行完畢的時(shí)刻是在第2m個(gè)周期。在第2m周期內(nèi)
A.如果發(fā)生在Network1的T3閉點(diǎn)之前,,那么在程序掃描到T3閉點(diǎn)的時(shí)候,,T3的輸出值已經(jīng)變?yōu)?了,閉點(diǎn)變?yōu)殚_點(diǎn),T2輸出變?yōu)?,,往下掃描到Network2的T2開點(diǎn)變?yōu)?,,T3的SD輸出也變?yōu)?,繼續(xù)掃描到Network3,,T3開點(diǎn)為0,,那么M10.2未被置位。
B.如果發(fā)生在Network1的T3閉點(diǎn)之后,,Network3的T3開點(diǎn)之前,,(則T2是保持為1的),在掃描到T3開點(diǎn)時(shí),,T3的輸出值變?yōu)?,,T3開點(diǎn)變?yōu)殚]點(diǎn),M10.2被置位,。
C.如果發(fā)生在Network3的T3開點(diǎn)之后,,那么在此周期內(nèi)對(duì)m10.2不會(huì)產(chǎn)生置位,在下一周期(2m+1),T3輸出值變?yōu)?了,,所以在Network1里T3閉點(diǎn)變?yōu)殚_點(diǎn),,T2輸出變?yōu)?,掃描到Network2里,,T2開點(diǎn)變?yōu)?,,導(dǎo)致T3輸出值變?yōu)?,掃描到Network3里,,T3開點(diǎn)變
1配方術(shù)語的含義
配方變量:配方畫面上通過輸入/輸出域顯示配方成分的數(shù)值,;
圖1.
配方條目數(shù)值:配方視圖中用于顯示配方成分的數(shù)值,即配方每條數(shù)據(jù)記錄的數(shù)值,;
圖2.
激活同步變量”Synchronize tags”: 需要配方條目數(shù)值與配方變量同步變化,;
激活變量離線”Tags offline”: 配方變量的數(shù)據(jù)與PLC變量變化不同步;
圖3.
與……同步”Synchronization”: 需要操作單元與PLC提供公共通訊區(qū),,通過“數(shù)據(jù)信箱”區(qū)域指針作為區(qū)域指示器來控制操作單元與PLC之間數(shù)據(jù)記錄的同步傳送,,并結(jié)合PLC作業(yè)或系統(tǒng)函數(shù)功能完成數(shù)據(jù)記錄的傳送。在操作單元與PLC之間每傳送一個(gè)數(shù)據(jù)記錄時(shí),,必須復(fù)位狀態(tài)字,,這樣可防止未經(jīng)允許的覆蓋數(shù)據(jù)。
圖4.
2配方數(shù)據(jù)記錄的傳送
圖5.
在配方視圖中,,從HMI設(shè)備的配方存儲(chǔ)器加載配方數(shù)據(jù)記錄,,或利用配方視圖的保存按鈕將其保存在HMI設(shè)備上的存儲(chǔ)器中。
在配方畫面中,,從配方存儲(chǔ)器中將配方數(shù)據(jù)記錄的值加載至配方變量,,保存時(shí),,將配方變量的值保存到配方存儲(chǔ)器內(nèi)的一個(gè)配方數(shù)據(jù)記錄中。
根據(jù)組態(tài)的不同,,配方畫面和PLC之間存在不同的傳送方式,。
3根據(jù)操作模式劃分組態(tài)方法
3.1 Teach-in模式
運(yùn)行時(shí)輸入數(shù)據(jù)記錄:要在不干擾當(dāng)前正在進(jìn)行的過程的前提下,在HMI設(shè)備上嘗試輸入生產(chǎn)數(shù)據(jù)用以獲取有效的數(shù)據(jù)值,。 因此,,不應(yīng)將生產(chǎn)數(shù)據(jù)即刻傳送到PLC。
3.1.1組態(tài)步驟
A)新建配方(略),;
B)定義配方的存儲(chǔ)路徑,;
C)勾選同步變量與變量離線---配方變量與PLC變量傳送數(shù)據(jù);
D)添加配方視圖,、顯示配方變量的I/O域到配方畫面上,。
3.1.2運(yùn)行結(jié)果
圖6.
配方條目數(shù)值與配方畫面的I/O域數(shù)值*,但與PLC變量不同,。只有執(zhí)行 ,,PLC變量才會(huì)刷新。
3.2手動(dòng)生產(chǎn)
通過配方視圖加載已存在配方的數(shù)據(jù)記錄值,,以供在畫面上檢查或更正生產(chǎn)數(shù)據(jù),。
3.2.1組態(tài)步驟
A)創(chuàng)建配方及配方視圖;
B)定義配方的存儲(chǔ)路徑,;
C)只激活同步變量,,取消變量離線。
3.2.1運(yùn)行結(jié)果
圖7.
變量在線,,在配方視圖中加載一條數(shù)據(jù)記錄,,配方條目數(shù)值與PLC變量同步變化。
若在畫面上添加了配方變量的輸入域,,此時(shí)配方變量也是同步變化的,。但當(dāng)手動(dòng)修改配方變量數(shù)值時(shí),配方變量與PLC變量是同步變化的,,配方視圖的條目數(shù)值不發(fā)生變化,也就是說,,配方視圖到配方變量是單向的連接,。
3.3自動(dòng)生產(chǎn)
自動(dòng)生產(chǎn)讓產(chǎn)品自動(dòng)被執(zhí)行。生產(chǎn)數(shù)據(jù)應(yīng)從 HMI 設(shè)備中的配方存儲(chǔ)器中或外部存儲(chǔ)介質(zhì)中直接傳送到 PLC,。無需配方視圖,。
3.3.1組態(tài)步驟
A)組態(tài)配方及顯示配方變量的I/O域;
B)定義配方的存儲(chǔ)路徑,;
C)取消激活同步變量,,則變量在線;
D)利用系統(tǒng)函數(shù)Set Data Record To PLC和Get Data Record From PLC或PLC作業(yè)執(zhí)行數(shù)據(jù)記錄的調(diào)用。
3.3.2運(yùn)行結(jié)果
配方變量與PLC變量即刻傳送數(shù)據(jù),,也就是配方變量與PLC變量數(shù)值是同步變化,。
4根據(jù)傳送模式劃分組態(tài)方法
配方的數(shù)據(jù)記錄的傳送模式分為異步傳送與同步傳送。
異步傳送的方法有:通過配方視圖的按鈕執(zhí)行上載 ,、下載 ,;或通過組態(tài)的系統(tǒng)函數(shù);或PLC作業(yè),。
同步傳送:結(jié)合“數(shù)據(jù)信箱”區(qū)域指針傳送數(shù)據(jù)記錄,,可以避免誤傳送。
4.1同步傳送組態(tài)方法
1)激活傳送下的“與……同步”,;
圖8.
2)創(chuàng)建數(shù)據(jù)信箱區(qū)域指針,;
圖9.
3)激活選項(xiàng)下面的同步變量及變量離線。
4)傳送數(shù)據(jù)記錄的方式可以由PLC和HMI設(shè)備任一方發(fā)起,,PLC利用PLC作業(yè)發(fā)起傳送,,HMI設(shè)備可利用配方視圖的按鈕或調(diào)用系統(tǒng)函數(shù)發(fā)起傳送。
4.2運(yùn)行結(jié)果
圖10.
執(zhí)行數(shù)據(jù)傳送后,,PLC變量與配方條目數(shù)值相同,,“數(shù)據(jù)信箱”區(qū)域指針顯示傳送狀態(tài)。
傳送狀態(tài)通過“數(shù)據(jù)信箱”區(qū)域指針的狀態(tài)字顯示,。有關(guān)“數(shù)據(jù)信箱”區(qū)域指針的定義可參考WinCC flexible的幫助文檔>通訊>SIMATIC S7>用戶數(shù)據(jù)區(qū)>區(qū)域指針>數(shù)據(jù)信箱,。
4.3異步傳送方式
利用PLC作業(yè)傳送配方的數(shù)據(jù)記錄,作業(yè)號(hào)69(數(shù)據(jù)記錄由PLC->HMI),,等同于 ,;作業(yè)號(hào)70(數(shù)據(jù)記錄由HMI->PLC),等同于 ,。
或使用系統(tǒng)函數(shù)組態(tài)上載,、下載按鈕,激活變量離線,,利用Get Data Record Tags From PLC完成 ,,利用Set Data Record Tags To PLC完成 。(若取消激活變量離線,,則利用Get Data Record From PLC和Set Data Record To PLC完成上傳,、下載功能。)
有關(guān)PLC作業(yè)的定義可參考WinCC flexible的幫助文檔>通訊>SIMATIC S7>用戶數(shù)據(jù)區(qū)>區(qū)域指針>PLC作業(yè),。