詳細(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ù)有無(wú)問題,M6.2能否被置位?
先來(lái)了解一下都有哪幾個(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)用語(yǔ)句時(shí)占用了少許us的時(shí)間。
怎么來(lái)驗(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,可以通過在中斷來(lái)證明
3,通過程序死循環(huán)監(jiān)視計(jì)時(shí)證明
4,通過多個(gè)計(jì)時(shí)器監(jiān)視時(shí)間來(lái)證明等等各種方法
那說明了是異步的有何作用呢?
說明了剛才咱們分析程序所作的時(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ā)端無(wú)關(guān)了,直到下一次再次掃描到此觸發(fā)端。
5. 分析程序
了解了以上的一些基本知識(shí),咱們?cè)賮?lái)看看剛才圖1中的程序。
一個(gè)CPU的掃描周期是可以計(jì)算的,根據(jù)不同的配置和數(shù)據(jù)的讀取,可以計(jì)算出不同的周期,在PLC運(yùn)行時(shí),每個(gè)周期的大小也是不一樣的,可以大致計(jì)算出范圍,可以根據(jù)每條語(yǔ)句來(lái)計(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的梯型圖換成語(yǔ)句表來(lái)分析指令執(zhí)行的過程。
圖10
一個(gè)CPU的掃描周期的計(jì)算可以根據(jù)以下幾個(gè)過程來(lái)進(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)來(lái)計(jì)算。假設(shè)CPU周期中的A,B,C,E,F(xiàn)的時(shí)間為固定的數(shù)值X us。
只分析程序里的”D” --用戶程序中的命令執(zhí)行。
程序是順序掃描的,從Network 1—3依次進(jìn)行,
以*個(gè)周期開始時(shí)來(lái)分析,首先掃描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,可以看出語(yǔ)句的執(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)的語(yǔ)句時(shí),T2的輸出變?yōu)?,執(zhí)行下一條語(yǔ)句T2開點(diǎn)就會(huì)閉合,T3開始計(jì)時(shí)。
B.如果T2執(zhí)行完畢的時(shí)刻是程序掃描到T2開點(diǎn)語(yǔ)句之后才發(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)來(lái)置位的,那么現(xiàn)在就來(lái)分析一下什么時(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ù)語(yǔ)的含義
配方變量:配方畫面上通過輸入/輸出域顯示配方成分的數(shù)值;
圖1.
配方條目數(shù)值:配方視圖中用于顯示配方成分的數(shù)值,即配方每條數(shù)據(jù)記錄的數(shù)值;
圖2.
激活同步變量”Synchronize tags”: 需要配方條目數(shù)值與配方變量同步變化;
激活變量離線”Tags offline”: 配方變量的數(shù)據(jù)與PLC變量變化不同步;
圖3.
與……同步”Synchronization”: 需要操作單元與PLC提供公共通訊區(qū),通過“數(shù)據(jù)信箱”區(qū)域指針作為區(qū)域指示器來(lái)控制操作單元與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。無(wú)需配方視圖。
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è)。