PLC概念
1、PLC的基本概念
可編程控制器(Programmable Controller)是計算機家族中的一員,是為工
業控制應用而設計制造的。早期的可編程控制器稱作可編程邏輯控制器
(Programmable Logic Controller),簡稱PLC,它主要用來代替繼電器實
現邏輯控制。隨著技術的發展,這種裝置的功能已經大大超過了邏輯控制的范
圍,因此,今天這種裝置稱作可編程控制器,簡稱PC。但是為了避免與個人計
算機(Personal Computer)的簡稱混淆,所以將可編程控制器簡稱PLC
2、PLC的基本結構
PLC實質是一種專用于工業控制的計算機,其硬件結構基本上與微型計算機相
同,如圖所示:
a. 中央處理單元(CPU)
中央處理單元(CPU)是PLC的控制中樞。它按照PLC系統程序賦予的功能接收并
存儲從編程器鍵入的用戶程序和數據;檢查電源、存儲器、I/O以及警戒定時
器的狀態,并能診斷用戶程序中的語法錯誤。當PLC投入運行時,首先它以掃
描的方式接收現場各輸入裝置的狀態和數據,并分別存入I/O映象區,然后從
用戶程序存儲器中逐條讀取用戶程序,經過命令解釋后按指令的規定執行邏輯
或算數運算的結果送入I/O映象區或數據寄存器內。等所有的用戶程序執行完
畢之后,最后將I/O映象區的各輸出狀態或輸出寄存器內的數據傳送到相應的
輸出裝置,如此循環運行,直到停止運行。
為了進一步提高PLC的可*性,近年來對大型PLC還采用雙CPU構成冗余系統,
或采用三CPU的表決式系統。這樣,即使某個CPU出現故障,整個系統仍能正常
運行。
b、存儲器
存放系統軟件的存儲器稱為系統程序存儲器。
存放應用軟件的存儲器稱為用戶程序存儲器。
C、電源
PLC的電源在整個系統中起著十分重要得作用。如果沒有一個良好的、可*得電
源系統是無法正常工作的,因此PLC的制造商對電源的設計和制造也十分重視
。一般交流電壓波動在+10%(+15%)范圍內,可以不采取其它措施而將PLC直接
連接到交流電網上去。
3、PLC的工作原理
一. 掃描技術
當PLC投入運行后,其工作過程一般分為三個階段,即輸入采樣、用戶程序執
行和輸出刷新三個階段。完成上述三個階段稱作一個掃描周期。在整個運行期
間,PLC的CPU以一定的掃描速度重復執行上述三個階段。
(一) 輸入采樣階段
在輸入采樣階段,PLC以掃描方式依次地讀入所有輸入狀態和數據,并將它們
存入I/O映象區中的相應得單元內。輸入采樣結束后,轉入用戶程序執行和輸
出刷新階段。在這兩個階段中,即使輸入狀態和數據發生變化,I/O映象區中
的相應單元的狀態和數據也不會改變。因此,如果輸入是脈沖信號,則該脈沖
信號的寬度必須大于一個掃描周期,才能保證在任何情況下,該輸入均能被讀
入。
(二) 用戶程序執行階段
在用戶程序執行階段,PLC總是按由上而下的順序依次地掃描用戶程序(梯形圖
)。在掃描每一條梯形圖時,又總是先掃描梯形圖左邊的由各觸點構成的控制
線路,并按先左后右、先上后下的順序對由觸點構成的控制線路進行邏輯運算
,然后根據邏輯運算的結果,刷新該邏輯線圈在系統RAM存儲區中對應位的狀
態;或者刷新該輸出線圈在I/O映象區中對應位的狀態;或者確定是否要執行
該梯形圖所規定的特殊功能指令。
即,在用戶程序執行過程中,只有輸入點在I/O映象區內的狀態和數據不會發
生變化,而其他輸出點和軟設備在I/O映象區或系統RAM存儲區內的狀態和數據
都有可能發生變化,而且排在上面的梯形圖,其程序執行結果會對排在下面的
凡是用到這些線圈或數據的梯形圖起作用;相反,排在下面的梯形圖,其被刷
新的邏輯線圈的狀態或數據只能到下一個掃描周期才能對排在其上面的程序起
作用。
(三) 輸出刷新階段
當掃描用戶程序結束后,PLC就進入輸出刷新階段。在此期間,CPU按照I/O映
象區內對應的狀態和數據刷新所有的輸出鎖存電路,再經輸出電路驅動相應的
外設。這時,才是PLC的真正輸出。
比較下二個程序的異同:
程序1:
程序2:
這兩段程序執行的結果完全一樣,但在PLC中執行的過程卻不一樣。
※ 程序1只用一次掃描周期,就可完成對%M4的刷新;
※ 程序2要用四次掃描周期,才能完成對%M4的刷新。
這兩個例子說明:同樣的若干條梯形圖,其排列次序不同,執行的結果也不同
。另外,也可以看到:采用掃描用戶程序的運行結果與繼電器控制裝置的硬邏
輯并行運行的結果有所區別。當然,如果掃描周期所占用的時間對整個運行來
說可以忽略,那么二者之間就沒有什么區別了。
一般來說,PLC的掃描周期包括自診斷、通訊等,如下圖所示,即一個掃描周
期等于自診斷、通訊、輸入采樣、用戶程序執行、輸出刷新等所有時間的總和
。
二. PLC的I/O響應時間
為了增強PLC的抗干擾能力,提高其可*性,PLC的每個開關量輸入端都采用光
電隔離等技術。
為了能實現繼電器控制線路的硬邏輯并行控制,PLC采用了不同于一般微型計
算機的運行方式(掃描技術)。
以上兩個主要原因,使得PLC得I/O響應比一般微型計算機構成的工業控制系統
滿的多,其響應時間至少等于一個掃描周期,一般均大于一個掃描周期甚至更
長。
所謂I/O響應時間指從PLC的某一輸入信號變化開始到系統有關輸出端信號的改
變所需的時間。其最短的I/O響應時間與最長的I/O響應時間如圖所示:
第(n-1)個
掃描周期
最短I/O響應時間:
最長I/O響應時間
SIEMENS PLC在中國的產品,根據規模和性能的大小,主要有 S7-200 S7-
300 和S7-400三種,下面就簡單介紹一下該三種產品的一些特性。
S7-200
??? 針對低性能要求的摸塊化小控制系統,它最多可有7個模塊的擴展能力,
在模塊中集成背板總線,它的網絡聯接有RS-485通訊接口和PROFIBUS兩種,
可通過編程器PG訪問所有模塊,帶有電源、CPU和I/O的一體化單元設備。
其中的擴展模塊(EM)有以下幾種:數字量輸入模塊(DI)——24VDC 和
120/230VAC;數字量輸出(DO)——24VDC 和 繼電器;模擬量輸入模塊
(AI)——電壓、電流、電阻和熱電偶;模擬量輸出模塊——電壓和電流。??
還有一個比較特殊的模塊-通訊處理器(CP)——該塊的功能是可以把S7-200
作為主站連接到AS-接口(傳感器和執行器接口),通過AS-接口的從站可以控
制多達248個設備,這樣就可以顯著的擴展S7-200的輸入和輸出點數。
CPU設計??
有3種手動選擇操作模式:STOP——停機模式,不執行程序;TERM——運行程
序,可以通過編程器進行讀/寫訪問;RUN——運行程序,通過編程器僅能進行
讀操作。
狀態指示器(LED):SF——系統錯誤或(和)CPU內部錯誤;RUN——運行模
式,綠燈;STOP——停機模,黃燈;DP——分布式I/O(僅對CPU-215)。
存儲器卡——用來在沒電的情況下不需要電池就可以保存用戶程序。PPI口用
來連接編程設備、文本顯示器或其他CPU。
S7-300
??? 相比較S7-200,S7-300針對的是中小系統,他的模塊可以擴展多達32個
模塊,背板總線也在模塊內集成,它的網絡連接已比較成熟和流行,有MPI(
多點接口)、PROFIBUS和工業以太網,使通訊和編程變的簡單和多選性,并
可以借助于HWConfig工具可以進行組態和設置參數。
S7-300的模塊稍微多一點,除了信號模塊(SM)和200的EM模塊同類型之外,
它還有接口模塊(IM)——用來進行多層組態,把總線從一層傳到另一層;占
位模塊(DM)——為沒有設置參數的信號模塊保留一個插槽或為以后安裝的接
口模塊保留一個插槽;功能模塊(FM)——執行特殊功能,如計數、定位、閉
環控制相當于對CPU功能的一個擴展或補充;通訊處理器(CP)——提供點對
點連接、PROFIBUS和工業以太網。
CPU設計
模式選擇器有:MRES=模塊復位功能;STOP=停止模式,程序不執行;RUN=程
序執行,編程器只讀操作;RUN-P=程序執行,編程器可讀寫操作。
狀態指示器:SF,BATF=電池故障;DC5V=內部5 V DC電壓指示;FRCE=表示
至少有一個輸入或輸出被強制;RUN=當CPU啟動時閃爍,在運行模式下常亮;
STOP=在停止模式下常亮,有存儲器復位請求時慢速閃爍,正在執行復位時快
速閃爍。
MPI接口用來連接到編程設備或其他設備,DP接口用來直接連接到分布式I/O
。
S7-400
同300的區別主要是規模和性能上更強大,啟動類型有冷啟動(CRST)和熱啟
動(WRST)之分,其他基本一樣。哦,它還有一個外部的電池電源接口,當在
線更換電池時可以向RAM提供后備電源。
編程設備
編程設備主要有PG720 PG740 PG760——可以理解成裝有編程軟件的手提電腦
;也可以直接用安裝有STEP7(SIEMENS的編程軟件)的PC來完成。而實現通
訊(要編程首先要和PLC的CPU通訊上)的要求主要在于接口:1.可以在PC上
裝CP5611卡——上面有MPI口,可用電纜直接連接。2.加個PC適配器,把MPI
口轉換成RS-232口后接到PC上。3.PLC加CP343卡,使它具有以太網口。
一個工程的建立
項目管理
每個自動化過程都是由許多較小的部分和子過程組成,所以工程建立的第一個
任務是分解子任務。而每個子任務定義了自動化系統要完成的硬件和軟件要求
。其中硬件包括輸入/輸出數目和類型,對應模塊序號和類型,所用機架號,
CPU型號和容量,HMI(人機界面)系統,網絡系統。軟件方面主要是程序結構
,自動化過程中的數據管理,組態數據、通訊數據及程序和項目文檔。在
SIEMENS的S7中,上述工作都在項目管理(SIMATIC 管理器),包括必須的硬
件(+組態),網絡(+組態),所有程序和自動化解決方案的數據管理。??
F1在線幫助。
SIMATIC管理器管理STEP 7項目,編寫 STEP 7用戶程序的工具,有梯形圖
LAD,語句表STL,和功能塊圖FBD,編程語言。利用編程器或外部編程器可以
把用戶程序保存到EPROM卡上。
SIMATIC管理器是一個在線/離線編輯S7對象的圖形化用戶界面,這些對象包
括項目、用戶程序、快、硬件站和工具。此管理器的用戶界面中工具條和
WINDOWS差不多,就是多了幾個PLC菜單——顯示訪問節點、存儲器卡、下載
、仿真模塊。
注::由于目前主流系統是S7-300,所以下面的操作基本以S7-300為主,而
實際過程由于配置的不同可能會有所不同。
STEP 7項目結構:項目中,數據以對象形式存儲,按樹型結構組織。
第一級:包含項目圖表,每個項目代表和項目存儲有關的一個數據結構。
第二級:站(如S7-300)用于存放硬件組態和模塊參數等信息,站是組態硬件
的起點。
S7程序文件夾是編寫程序的起點,所有S7系列的軟件均放在S7程序文件夾下,
它包含程序塊文件和源文件夾。
SIMATIC的網絡圖表(MPI、PROFIBUS、工業以太網)
第三級和其他級:和上級對象類型有關。
編程器可離線/在線查看項目——OFFLINE:編程器硬盤上的內容;ONLINE:
通過網線從PLC讀到的內容。
菜單選項: 在OPTIONS-CUSTOMIZE? 設置語言、助記符、常用特性(存儲位
置、系統信息顯示)。
創建一個項目:FILE? NEW? NEW PROJECT
插入 S7程序塊:INSERT? PROGRAM S7 PROGRAM
插入 S7 塊: INSERT S7 BLOCK 然后可選:1:組織塊(OB)被操作系統調
用,他們是操作系統和用戶程序的接口。 2:功能FC和功能塊FB是實際的用戶
程序利用他們可以 把復雜的程序分解成小的,易于調試的單元。3:數據塊存
儲用戶的數據。選擇所需塊類型后,會打開一個屬性對話框,其中可輸入塊序
號和要使用的編程語言,及其他設置。
補充一下:
1、內存總清——MRES=MEMORY RESET,經過MRES的模塊相當于一個新模塊,
所以請務必謹慎。方法是:放在MRES足夠時間,到STOP指示燈閃2下;彈回到
STOP再迅速放到MRES,此時STOP快速閃6下——內存清空,將刪除所有用戶程
序數據,硬件測試和初始化,如果此時裝有EPROM卡,把卡內容COPY到內部
RAM區。
2、SIEMENS的信號模塊(SM)結構設計,接線非常方便,更換摸板無需接線
(可拔下來)。固定方式有彈簧和螺釘連接兩種。
3、對于軟件的授權:在光盤安裝后以后,一定要用軟盤(權盤)授權,對于
重裝系統或軟件的,一定要先”收回“權到軟盤以后,才進行,以便重裝以后
再次授權,否則只能聯系西門子了。
硬件組態和存儲器概念
S7-300的存儲器概念:
裝載存儲器是一個可編程模塊,它包括建立在編程設備上的裝載對象(邏輯塊
、數據塊和其他信息),它可以是存儲器卡或內部集成的RAM。存儲器卡一般
有兩種,其中,當采用RAM存儲器卡時,系統必須配備電池,當采用Flash
EPROM存儲器卡時,則斷電不會丟失,但內部RAM中的數據仍需電池保持。工
作存儲器僅包含和運行時間使用的程序和數據,RAM工作存儲器集成在CPU中,
通過后備電池保持。系統存儲器包括過程映象輸入和輸出表(PII,PIQ),位
存儲器,定時器,計數器和局部堆踐。保持存儲器是非揮發的RAM,即使沒有
安裝后備電池也可用來保持某些數據,設置CPU參數時要指定保持的區域。
從上述概念可知,假如我們在線修改程序,被修改的塊存放在工作存儲器中,
當把程序上載到編程器時,就從工作存儲器傳到編程器。由于斷電會導致RAM
數據的丟失,所以假如要安全保存被修改的程序,就必須保存在FEPROM或硬盤
上。
硬件組態和參數分
一些概念:組態就是指在硬件組態的站窗口中分配機架、塊可分布式I/O,可
從硬件目錄中選擇部件;參數分配就是建立可分配參數模塊的特性,例如啟動
特性、保持區等;設定組態就是設定好的硬件組態和參數分配;實際組態指已
存在的實際組態和參數分配,一般是在已裝配的系統中,從PLC的CPU中讀出來
的。
組態過程:
啟動硬件組態:新建一個項目(PROJECT),選擇該項目,并插入(INSERT)
一個站(STATION),在SIMATIC管理器中選擇硬件站(HARDWARE)雙擊OPEN
即可,我們同時可以打開硬件目錄——VIEW-CATALOG,如果選擇標準硬件目
錄庫,它會提供所有的機架、模塊和接口模塊。
產生硬件組態:主要選擇機架,指定模塊如何在機架擺放。具體是:
1、? 在硬件目錄中打開一個SIMATIC300站的RACK-300(例如是300),雙擊
或拖到左邊窗口。這樣在左邊的窗口中就出現兩個機架表:上面的部分顯示一
個簡表,下面的部分顯示帶有定貨號、MPI地址和I/O地址的詳細信息。
2、? 電源:雙擊或拖拉目錄中的“PS-300”模塊,放到表中的一號槽位上。
3、? CPU:從CPU-300的目錄中選擇你所配置的CPU,列入2號槽位。
4、? 3號槽—一般接口模塊保留(用于多層組態),在實際配置中,如果這個
位置要保留以后安裝接口模塊,在安裝時就必須插入一個占位模塊。
5、? 信號模塊:從4號槽位開始最多可以插入八塊信號模塊(SM卡),包括通
訊處理器(CP)和功能模塊(FM)。
6、CP卡(通訊處理卡):如以太網卡CP-343,PROFIBUS CP-341、342等。
當然我們也可以直接用CPU上的MPI口,省錢但速度相對慢點。
分配參數:按要求對各種模塊參數進行設置。雙擊模塊打開屬性對話框
(Properties)
CPU——屬性包括通用屬性General(主要提供模塊的類型,位置和MPI地址—
如果要把幾個PLC通過MPI接口組成網絡,每個CPU分配不同的MPI地址);啟
動項目START.UP(主要選擇三種啟動方式,HOT—從斷電時的語句,也就是程
序斷電處開始,WARM—從頭,也就是程序第一步開始,COLD—冷啟動;監視
時間包括從模塊讀準備的信息時間和傳遞參數到模塊的時間;可保存數量
Retentive Memory:用來指定當出現斷電或從STOP到RUN切換時需要保持的
存儲器區域;循環/時鐘存儲器;保護功能(設定鑰匙權限和各種級別及口令
);診斷/時鐘。
保存下載及上傳:經過上述設置以后,我們就可以保存、編譯、一致性檢查后
,把設定組態下載到PLC中。當然,對實際運行的PLC,我們也可以通過上傳(
Upload Station)把實際組態讀到編程器。
硬件診斷及組態中可能出現的問題:在SIMATIC管理器中可以用PLC-Diagnose
Hardware來獲得PLC的診斷狀態。在實際組態過程中最可能出現的問題是以下
幾點:
1、? 在S7-300中,組態中有空位置,此時組態不能編譯通過;
2、? 不正確的CPU(例如:是CPU 315-2DP,不是CPU 314)此時組態不能下
載;
3、? 模擬量模塊分配到不正確的槽位置,此時CPU會因為參數分配錯誤進入
STOP模式;
4、模擬量模塊不正確的測量范圍,導致模擬量模塊組態錯誤。
塊的編輯
STEP 7編程語言:LAD 梯形圖/FBD功能塊圖/STL語句表,更加豐富,更加靈
活,但對初學者比較難以理解,當然某些語言不能用LAD表達。
塊編輯的啟動:選擇所需編程語言,雙擊打開需編輯的塊,如OB1或FC1等。當
采用LAD或FBD編程語言時,可用工具條來插入簡單的程序文件,當采用STL,
則可用在線幫助得到有關語言的語法和功能——HELP-Help on STL。
編程器組成:聲明表:屬于塊,為塊聲明變量和參數;代碼區:包含程序本身
;編程元件:可選打開或關閉,內容依賴于所選擇的編程語言,雙擊插入或拖
拉插入。
VIEW菜單:可切換到另一種語言,并可實現LAD/FBD/STL之間的轉換,要知道
,LAD/FBD轉換成STL的,在語句表中可能不是最有效程序。而STL轉換成其他
則不一定行,轉換不了的仍用語句表示,轉換過程絕不會丟失程序。
其他菜單由于篇幅較大,請最好結合教材及軟件自己熟悉。
在討論調用塊前先介紹一下OB1塊——主循環塊,絕對不能改名或刪除,它是
由操作系統循環調用,可以訪問其他的S7程序塊,它包括自身程序和其他塊的
調用。所以,當我們編輯好一個塊以后,如FC1,為了讓新塊集成在CPU中的循
環程序中,必須在OB1中調用。即在OB1中CALL F1。 子程序(新塊FC 1)執
行的條件有以下三個:已經下載到PLC中,必須在OB1調用,PLC處于運行狀態
。 下載到實際的PLC時,我們可以選擇所有塊或其中的一個或幾個,再
Download到PLC中。
程序的執行過程:當PLC得電或從STOP切換到RUN模式,CPU會執行一次全啟動
(使用OB100)在全啟動期間,操作系統清除非保持位存儲器、定時器和計數
器,刪除中斷堆箋和塊堆箋,復位所有保存的硬件中斷,并啟動掃描循環監視
時間。
CPU的循環操作包括三個主要部分:CPU檢查輸入信號的狀態并刷新過程影象輸
入表(PII..);執行用戶程序,也就是OB1中的程序及一些事件(中斷等)
;把過程輸出影象輸出表(PIQ)寫到輸出模塊。上面所提到的PII/PIQ是CPU
中特定的存儲器,用來保存輸入模塊/輸出模塊的信號,在用戶程序中檢查時
,可以保證在一個掃描周期內為同樣的信號狀態。
程序結構:上面曾經提到過,一個比較簡單的程序,我們可以不用各種子程序
塊(如FC.FB),而是直接把整個程序直接寫在一個塊上(通常是OB1主塊上
),CPU逐條的處理指令,我們稱這種叫線形編程;而對稍微有點復雜的程序
,我們可以把它分成幾個塊,每塊包含處理一部分任務的程序,在每一個塊中
可以進一步分解、成幾個段,可以為相同類型的段生成段模塊,組織塊OB1包
含按順序調用其他塊的指令,我們把這種方法叫分塊編程;另外,對可重復使
用的功能裝入單個塊中,OB1(或其他塊)調用這些塊并傳遞相關參數,這種
方法叫結構化編程。用戶塊(程序塊)包括程序代碼和用戶數據,在結構化程
序中,一些塊循環調用處理,一些塊需要時才調用。程序塊共有組織塊(OB)
、功能塊(FB)、功能(FC)、系統功能塊(SFB)和系統功能(FC)5種,
其中系統塊是在CPU操作系統中預先定義好的功能和功能塊,這些塊不占用用
戶程序空間。
在下節討論位指令前先討論一下SIEMENS的模塊地址:在不帶DP口的S7-300和
不組態的S7-400采用固定槽位編址,使用帶DP口的S7-300和S7-400,可以分
配模塊的起始地址。但要注意,由于CPU存儲器復位后,參數和地址會丟失,
這就意味著所有地址都回到和槽位有關的地址或是缺省地址。我們還是以S7-
300為例,在S7-300中,機架上的插槽號簡化了模塊地址,模塊的第一個地址
由機架上的模塊地址決定。一般槽1給電源,槽2是CPU,槽3為IM(接口模板
)所用,4~11為I/O卡、CP卡和FM卡。他們的固定地址就是為每個槽位保留4
個字節——就是說,槽4(第一塊I/O卡),地址為0.0~3.7(共32位),槽5
(第二塊I/O卡)地址為4.0~7.7,假設第一卡是DI,那么他們的地址就是
I0.0、I0.1、、、I3.7,若第二卡為DO卡,地址為Q4.0、Q4.1、、、、Q7.7
,請注意,當使用16通道的DI/DO模塊時,每個槽位就會失去兩個字節(16位
)。
基本邏輯指令
與 &(FBD) A(STL) (AND指令)
或 >=1(FBD) O (STL) (OR指令)
異或 XOR(FBD) X(STL) (XOR指令)
注意:異或操作是指:當兩個信號中僅有一個滿足時,輸出狀態才是“1”,
這個指令不能使用于多個地址的異或邏輯操作(N個中有一個1時才是1),所
以三個及三個以上的異或指令,舊的RLO(邏輯操作結果)和另一個輸入作異
或運算。
賦值語句 =
置位 S 光是置位,一直保持到它被另一個指令復位為止。
復位 R 光是復位,一直保持到它被另一個指令置位為止。
觸發器的置位復位:同時有置位輸入和復位輸入,如果兩個輸入端同時出現
RLO=1,根據優先級。在LAD/FBD中,分別有置位優先和復位優先的不同符號
,在STL中,最后編寫的指令具有高優先權。
注意:如果用置位命令把輸出置位,當CPU全啟動時它被復位,但如果聲明保
持,則當CPU全啟動時,它就一直保持置位狀態。
連接器:M0.0(#),為中間賦值元件,它把當前RLO保存到指定地址,當它
和其他元件串聯時,連接器指令和觸點一樣插入。
注意連接器不能:
直接連接到電源母線
直接跟一個分支;
用在分支末尾。
但連接器可以用“NOT”元件對它進行取反操作。
影響RLO的指令:
NOT=取反;CLR=復位(僅用在STL中);SET=置位(僅用在STL中);SAVE=
把RLO保存到狀態寄存器中的“BR”;BR=用來重新檢查保存的RLO。
主控繼電器功能 MCR:是一個用來接通或斷開電流的邏輯主開關。如果MCR條
件不滿足:0分配給輸出線圈,置位線圈和復位線圈指令不改變當前值,MOVE指
令把0傳到目的地址。MCRA指令啟動主控繼電器功能/MCRD指令取消MCR功能,
直到另一個MCRA指令起作用。
無條件轉移(不依賴于RLO) JMP
在LAD/FBD中,在線圈符號上面輸入作為表示的標號或符號,如NEW1,NEW2等
,標號最多有4個字符,第一個字符必須使用字母或“_”。
跳轉規則:可以向前或向后跳轉,跳轉指令和跳轉目的必須在同一個塊中(最
大跳轉長度為64K字節);在一個塊中跳轉目的只能出現一次;跳轉指令可以
用在FB、FC和OB中。
條件跳轉:有兩個:JC——當RLO=1時,JC才執行,當RLO=0時,不跳轉,繼
續執行下面的程序,但置RLO=1。 JCN——當RLO=0時,JCN才執行,當RLO=1
時,不跳轉。
邊沿檢測:RLO-邊沿檢測和信號-邊沿檢測。
RLO-邊沿檢測:當邏輯操作結果變化時,產生RLO邊沿。檢測正邊沿FP——
RLO從“0”變化到“1”,“FP”檢查指令產生一個“掃描周期”的信號“1
”;檢測負邊沿FN,則RLO從“1”變化到“0”,“FN”檢查指令產生一個“
掃描周期”的信號“1”。上述兩個結果保存在“FP(FN)”位存儲器中或數
據位中,如M 1.0…,同時,可以輸出在其他線圈。
信號-邊沿檢測:同上面的RLO指令類似,當信號變化時,產生信號邊沿,也有
正/負邊沿之分:POS/NEG。
上述各種指令,最好請結合實際軟件,掌握其方法、特性和不同之處,其他復
雜指令請參考各種高級編程手冊。
數字指令
在討論數字指令前先了解一下各種數據格式,關于二進制、十進制及其他數的
表示方法,在其他地方都有介紹,這里就不再重復。
一、數據格式(16位):數據類型INT是整數(16位),其中符號(位15)表
示是正數或是負數(“0”=正數,“1”=負數),16位整數的數值范圍是-
32768~+32767。在二進制格式中,整數的負數形式用正數的二進制補碼表示
。(二進制補碼利用取反加1得到) 負數的位格式,對零的位置加權求和,再
加1,然后在前面放一個負號。
BCD碼:十進制的每一位用四個二進制數表示,因為最大為9,所以需要四位二
進制才能表示出來(十進制的9=1001二進制),要注意,從0~9的十進制數的
BCD碼表示與二進制數表示相同,但BCD碼一般用作顯示,并非二進制。上面的
INT(整數)主要是用來運算。
如BCD碼W#16#296,在CPU中表現為0000,0010,1001,0110(直接為+,2,
9,6=+296);而整數+296則表示為0000,0001,0010,1000(即
28+25+23=296),再例如整數-413表示為1111,1110,0110,0011(因為是
負數,所以用補碼,取反加1,所以上面的二進制數=-(28+27+24+23+22+1)
=“-413”,而在BCD碼該數(W#16#F413)則可以簡單的表示為1111,0100
,0001,0011。
二、數據格式(32位):DINT類型的數據——帶符號位的32-位整數,定義為
“雙整數”或“長整數”,它的表示方法及范圍是:L#-
2147483648~L#+2147483647;還有一個是實數型REAL型(也叫浮點數),是
1.175495*10-38~3402823*1038之間,實數的通用格式為(Sign)*(1.f)
*(2e-127),其中Sign為符號位第31位(即最高位),低位的0~22位為f=底
數位,23~30為e=指數。STEP 7中的實數是按照IEEE標準表示的。
數據的裝入和傳遞:MOVE(LAD/FBD)或L和T(STL):如果輸入EN有效,輸
入“IN”處的值拷貝到輸出“OUT”。裝載和傳遞指令的執行與RLO無關,數
據通過累加器交換,裝載指令把右邊源地址的值寫到累加器1(不夠32位用0補
齊),傳遞指令拷貝累加器中一些或所有內容到指定的目的地址。如先裝載L
+5 / L L#523312 / L B#16#EF (分別為裝載一個整數+5/一個雙整數
523312/一個十六進制數EF)到第一累加器(ACCU1),然后再傳輸到目的地
,如T MB5等。累加器是CPU中的輔助存儲器,它們用于不同地址之間的數據
交換、比較和數學運算操作。S7-300有兩個32位的累加器,S7-400有四個32
位的累加器。在裝載過程中,ACCU 1中的值先移入ACCU 2,在新值寫入前先
清零,然后在把要裝入的值寫入ACCU 1,傳遞時則從ACCU 1中讀出。裝載和
傳遞指令可以指定32位中的一個字節或是字及雙字,如果僅傳遞一個字節,只
使用右邊的8位。在LAD/FBD中,我們可以使用MOVE的允許輸入(EN)把裝載
和傳遞操作和RLO聯系起來,在STL中,則總是執行裝載和傳遞操作,而和RLO
無關,但是,我們可以利用條件跳轉指令來執行和RLO有關的裝入和傳遞功能
。
定時器:STEP 7中,CPU為定時器保留了一個特殊存儲器,這個區專門為每個
定時器地址保留一個16位字。定時器的位0~9包含用二進制表示的時間值,12
、13位為時間基準——0表示10ms,1表示100ms,2=1秒,3=10秒,時間基準
定義的是一個單位代表的時間間隔。時間值可以直接用常數來表示(此時時間
基準自動由系統自動分配),例如S5T#100ms,S5T#2h2m2s20ms。
S5定時器格式:時間的指定可以如上述所說直接輸入固定的時間常數,或由操
作人員用撥輪按扭改變或和存儲器字或數據字中的時間值有關的過程和配方。
在使用中可以用L命令(讀出)定時器BI輸出端的地址(包含10位二進制數表
示的時間值,不帶時間基準),如 L T5;也可以用LC命令讀出定時器BCD端
的地址(3位BCD數表示的時間值和12、13位的時間基準)。具體介紹幾種常
用的定時器:下面只介紹功能,具體符號可以在元件表中找。
接通延時(SD)定時器:當定時器的“S”輸入端的RLO從0變到1時,定時器
啟動。只要輸入S=1,定時器起作用,當到達指定的TV值(預設值)時定時器
啟動(輸出Q=1),同時該定位器還有一個復位端R端,當等于1時,就清除定
時值并且復位Q輸出。當前時間可以在BI輸出端以二進制數讀出,在BCD端以
BCD碼形式讀出,當前時間值是TV的初始值減定時器啟動以來的經過時間。
帶保持接通延時定時器(SS):與上面SD定時器基本一致,唯一不同的就是具
有保持功能,也就是說:一旦S輸入端的RLO從0變到1,定時器便啟動,即使定
時過程中出現輸入S端=0,定時器仍繼續記時。但有一點,在保持過程中,如
果S輸入端再次從0變1,則定時器重新開始。
關斷延時定時器(SF):從某些方面說,和上面提到的SD接通延時定時器狀態
正好相反。當定時器的S輸入端的RLO從“1”變到“0”時,定時器啟動,輸出
信號Q=0,其他功能和輸出與SD一樣。個人理解,是否SD接通延時定時器,較
多的用于正邏輯,而SF更多的用于事故安全型(有時也叫反邏輯,就是在正常
的工況中,輸入輸出都為1或是帶電情況)中。
脈沖(SP):這個比較好理解,當“S”輸入端從0變到1時,啟動定時器,輸
出Q=1(最多一個脈沖。輸出Q復位的情況為:定時器時間到或啟動信號從1變
到0或復位輸入R信號=1。
擴展脈沖(SE):當輸入端的RLO從0變到1時,定時器啟動,輸出Q置1,即使
當中S端輸入變到0,輸出Q仍保持1。當定時器正在運行,如果啟動信號從0變
到1,定時器被再次啟動。它的復位情況是定時器時間到或復位R端有信號1。
位指令定時器:所有的定時器也可以用簡單的位指令啟動,這種方法和前面討
論的定時器功能的相似處在于:啟動條件在S端,指定時間值,復位條件在R端
輸入,信號響應在Q端。不同的是(對LAD/FBD)不能檢查當前時間值(沒有BI/BCD輸出)。
評論