西門子S7-1200 控制器是我們新推出產品的核心,可實現(xiàn)簡單卻高度精確的自動化任務。西門子S7-1200 控制器實現(xiàn)了模塊化和緊湊型設計,功能強大、投資安全并且*適合各種應用??蓴U展性強、靈活度高的設計,可實現(xiàn)標準工業(yè)通信的通信接口以及一整套強大的集成技術功能,使該控制器成為完整、全面的自動化解決方案的重要組成部分。
產品簡介
詳細介紹
重慶西門子S7-1200代理商(歡迎您)總代理
西門子S7-1200PLC編程語言
STEP 7 為 西門子S7-1200 提供以下標準編程語言:
- LAD(梯形圖邏輯)是一種圖形編程語言。它使用基于電路圖的表示法。
- FBD(能塊圖)是基于布爾代數(shù)中使用的圖形邏輯符號的編程語言。
- SCL(結構化控制語言)是一種基于文本的高級編程語言。 創(chuàng)建代碼塊時,應選擇該塊要使用的編程語言。 用戶程序可以使用由任意或所有編程語言創(chuàng)建的代碼塊。
梯形圖 (LAD)
電路圖的元件(如常閉觸點、常開觸點和線圈)相互連接構成程序段。
要創(chuàng)建復雜運算邏輯,可插入分支以創(chuàng)建并行電路的邏輯。 并行分支向下打開或直接連接到電源線。 用戶可向上終止分支。
LAD 向多種功能(如數(shù)學、定時器、計數(shù)器和移動)提供“功能框”指令。STEP 7 不限制 LAD 程序段中的指令(行和列)數(shù)。
說明
每個 LAD 程序段都必須使用線圈或功能框指令來終止。
創(chuàng)建 LAD 程序段時請注意以下規(guī)則:
- 不能創(chuàng)建可能導致反向能流的分支。
- 不能創(chuàng)建可能導致短路的分支。
功能塊圖 (FBD)
與 LAD 一樣,F(xiàn)BD 也是一種圖形編程語言。 邏輯表示法以布爾代數(shù)中使用的圖形邏輯符號為基礎。
要創(chuàng)建復雜運算的邏輯,在功能框之間插入 并行分支。算術功能和其它復雜功能可直接結合邏輯框表示。STEP 7 不限制 FBD 程序段中的指令(行和列)數(shù)。
SCL
結構化控制語言 (SCL, Structured Control Language) 是用于 SIMATIC S7 CPU 的基于 PASCAL 的高級編程語言。 SCL 支持 STEP 7 的塊結構 。 可以使用以下三種編程語言之一將程序塊包括到項目中:SCL、LAD 和 FBD。
SCL 指令使用標準編程運算符,例如,用 (:=) 表示賦值,算術功能(+ 表示相加,- 表示相減,* 表示相乘,/ 表示相除)。 SCL 也使用標準的 PASCAL 程序控制操作,如 IF-THEN-ELSE、CASE、REPEAT-UNTIL、GOTO 和 RETURN。 SCL
編程語言中的語法元素還可以使用所有的 PASCAL 參考。 許多 SCL 的其它指令(如定時器和計數(shù)器)與 LAD 和 FBD 指令匹配。 有關特定指令的更多信息,請參見基本指令 和擴展指令章節(jié)中的特定指令。
SCL 程序編輯器
可以在創(chuàng)建該塊時任何塊類型(OB、FB 或 FC)以便使用 SCL 編程語言。 STEP 7
提供包含以下元素的 SCL 程序編輯器:
- 用于定義代碼塊參數(shù)的接口部分
- 用于程序代碼的代碼部分
- 包含CPU支持的 SCL 指令的指令樹 可以直接在代碼部分輸入指令的 SCL 代碼。
編輯器包含用于通用代碼結構和注釋的按鈕。 要了解更復雜的指令,只需從指令樹拖動
SCL 指令并將其放入程序中。 也可以使用任意文本編輯器創(chuàng)建 SCL程序,然后將相應文件導入 STEP 7 中。
在 SCL 代碼塊接口部分,可以聲明下列類型的參數(shù):
●Input、Output、InOut 和 Ret_Val: 這些參數(shù)定義代碼塊的輸入變量、輸出變量和返回值。 執(zhí)行代碼塊期間局部使用此處輸入的變量名稱。 通常不會使用變量表中的全局變量名稱。
●Static(僅適用于 FB,上述示例適用于 FC): 代碼塊使用靜態(tài)變量在背景數(shù)據(jù)塊中存儲靜態(tài)中間結果。 塊會一直保留靜態(tài)數(shù)據(jù),直到多個周期后被覆蓋。 塊的名稱(此塊將其作為多重背景調用)也存儲在靜態(tài)局部數(shù)據(jù)中。
●Temp:這些參數(shù)是執(zhí)行代碼塊期間使用的臨時變量。
●Constant:這些是為代碼塊的常數(shù)值。
如果從其它代碼塊調用 SCL 代碼塊,該 SCL 代碼塊的參數(shù)會顯示為輸入或輸出。
本示例中,“Start”和“On”變量(來自項目變量表)相當于 SCL程序聲明表中的“StartStopSwitch”和“RunYesNo”。
SCL 表達式和運算
構造 SCL 表達式
SCL 表達式是用于計算值的公式。 表達式由操作數(shù)和運算符(如 *、/、+ 或 -)組成。 操作數(shù)可以是變量、常量或表達式。
表達式的計算按一定的順序進行,具體由以下因素決定:
- 每個運算符均具有預定義的優(yōu)先級,首先執(zhí)行優(yōu)先級高的運算。
- 按從左至右的順序處理優(yōu)先級相同的運算符。
- 可使用圓括號要一起計算的一系列運算符。 表達式的結果可用于將值分配給程序使用的變量、用作由控制語句使用的條件、用作其它SCL 指令的參數(shù)或者用于調用代碼塊。
表格 7- 2 SCL 中的運算符
類型 | 操作 | 操作員 | 優(yōu)先級 |
圓括號 | (表達式) | ( , ) | 1 |
數(shù)學 | 乘方 | ** | 2 |
符號(一元加號) | + | 3 | |
符號(一元減號) | - | 3 | |
倍增 | * | 4 | |
除法 | / | 4 | |
取模 | MOD | 4 | |
加法 | + | 5 | |
減法 | - | 5 | |
比較 | 小于 | < | 6 |
小于或等于 | <= | 6 | |
大于 | > | 6 | |
大于或等于 | >= | 6 | |
等于 | = | 7 | |
不等于 | <> | 7 | |
位邏輯 | 取反(一元) | NOT | 3 |
AND 邏輯運算 | AND 或 & | 8 |
類型 | 操作 | 操作員 | 優(yōu)先級 |
異或邏輯運算 | XOR | 9 | |
OR 邏輯運算 | OR | 10 | |
賦值 | 賦值 | := | 11 |
作為一種高級編程語言,SCL 使用標準語句實現(xiàn)基本任務:
- 賦值語句::=
- 算術功能:+、-、*和 /
- 全局變量的尋址:"<變量名稱>"(變量名稱或數(shù)據(jù)塊名稱括在雙引號內)
- 局部變量的尋址:#<變量名稱>(在變量名稱前加“#”符號) 以下示例顯示了用法不同的各種表達式。
"C" := #A+#B; 將兩個局部變量之和賦值給一個變量
"Data_block_1".Tag := #A; 為數(shù)據(jù)塊變量賦值
IF #A > #B THEN "C" := #A; IF-THEN語句的條件
"C" := SQRT (SQR (#A) + SQR (#B)); SQRT指令的參數(shù)
算術運算符可以處理各種數(shù)值數(shù)據(jù)類型。 結果的數(shù)據(jù)類型取決于高有效操作數(shù)的數(shù)據(jù)類型。 例如,使用 INT 操作數(shù)和 REAL 操作數(shù)的乘法運算會產生 REAL 結果值。
控制語句
控制語句是 SCL 表達式的一種類型,可用于執(zhí)行以下任務:
- 程序分支
- 重復SCL編程代碼的某些部分
- 跳轉到SCL程序的其它部分
- 按條件執(zhí)行
SCL 控制語句包括 IF-THEN、CASE-OF、FOR-TO-DO、WHILE-DO、REPEAT-UNTIL、CONTINUE、GOTO 和 RETURN。
一條語句通常占一行代碼。 可以在一行中輸入多條語句,或者可將一條語句斷開成多行代碼以使代碼易于閱讀。 分隔符(如制表符、換行符和多余空格)在語法檢查期間會被忽略。 END 語句可終止控制語句。
以下示例顯示的是 FOR-TO-DO 控制語句。 (兩種形式的代碼在語法上均有效。)
FOR x := 0 TO max DO sum := sum + value(x); END_FOR;
FOR x := 0 TO max DO
sum := sum + value(x); END_FOR;
還可以為控制語句提供標簽。 用語句前的逗點將標簽隔開:
Label: <語句>;
有關完整的 SCL 編程語言參考,請參見 STEP 7 在線幫助。
條件
條件是一個比較表達式或邏輯表達式,其結果為 BOOL 類型(值為 TRUE 或 FALSE)。 以下示例顯示了各種類型的條件。
#Temperature > 50
#Counter <= 100
#CHAR1 < 'S'
關系表達式
(#Alpha <> 12) AND NOT #Beta 比較和邏輯表達式
5 + #Alpha 算術表達式
條件可以使用算術表達式:
- 如果結果是非零的任何值,則表達式的條件為TRUE。
- 如果結果為零,則表達式的條件為FALSE。
從 SCL 程序中調用其它代碼塊
要調用用戶程序中的其它代碼塊,只需使用參數(shù)輸入 FB 或 FC 的名稱(或地址)。 對于 FB,還必須提供 FB 待調用的背景數(shù)據(jù)塊。
<DB 名稱> (參數(shù)列表) 作為單個背景調用
<#背景名稱> (參數(shù)列表) 作為多重背景調用
"MyDB"(MyInput:=10, MyInOut:="Tag1");
<FC 名稱> (參數(shù)列表) 標準調用
<操作數(shù)>:=<FC 名稱> (參數(shù)列表) 在表達式中調用
"MyFC"(MyInput:=10, MyInOut:="Tag1");
還可將塊從導航樹中拖動到 SCL 程序編輯器中,然后完成參數(shù)分配。
將塊注釋添加到 SCL 代碼
可通過在 (* 和 *) 之間加入注釋文本,將塊注釋添加到 SCL 代碼中。 可在 (* 和 *) 之間添加任意數(shù)目的注釋行。 SCL 程序塊可能包括多個塊注釋。 為方便編程,SCL 編輯器包括一個塊注釋按鈕和通用控制語句:
尋址
與 LAD 和 FBD 一樣,SCL 允許用戶在用戶程序中使用變量地址(符號尋址)或地址。 SCL 還允許使用變量作為數(shù)組索引。
尋址
%I0.0 在地址之前加上“%”符號。 沒有“%”,STEP 7
將在編譯時生成未定義的變量錯誤。
符號尋址
"PLC_Tag_1" PLC 變量表中的變量
"Data_block_1".Tag_1 數(shù)據(jù)塊中的變量
"Data_block_1".MyArray[#i] 數(shù)據(jù)塊數(shù)組中的數(shù)組元素
使用 PEEK 和 POKE 指令進行索引尋址
SCL 提供 PEEK 和 POKE 指令,可用來從數(shù)據(jù)塊、I/O 或存儲器中讀取內容或是向其中寫入內容。 而您提供操作中具體字節(jié)偏移量或位偏移量的參數(shù)。
與數(shù)據(jù)塊一起使用 PEEK 和 POKE 指令時,必須使用標準(未優(yōu)化的)數(shù)據(jù)塊。 同時需要注意 PEEK 和 POKE 指令僅用于傳輸數(shù)據(jù)。 它們無法識別地址中的數(shù)據(jù)類型。
- LAD、FBD和 SCL 的 EN 和 ENO
確定指令的“能流”(EN 和 ENO)
特定指令(如數(shù)學和移動指令)為 EN 和 ENO 提供參數(shù)。 這些參數(shù)與 LAD 或 FBD 中的能流有關并確定在該掃描期間是否執(zhí)行指令。 SCL 還允許用戶為代碼塊設置 ENO 參數(shù)。
- EN(使能輸入)是布爾輸入。要執(zhí)行功能框指令,能流(EN = 1) 必須出現(xiàn)在此輸入端。 如果 LAD 框的 EN 輸入直接連接到左側電源線,將始終執(zhí)行該指令。
- ENO(使能輸出)是布爾輸出。如果該功能框在EN 輸入端有能流且正確執(zhí)行了其功能,則 ENO 輸出會將能流 (ENO = 1) 傳遞到下一個元素。 如果執(zhí)行功能框指令時檢測到錯誤,則在產生該錯誤的功能框指令處終止該能流 (ENO
= 0)。
表格 7- 3 EN 和 ENO 的操作數(shù)
程序編輯器 | 輸入/輸出 | 操作數(shù) | 數(shù)據(jù)類型 |
LAD | EN, ENO | 能流 | Bool |
FBD | EN | I、I:P、Q、M、DB、Temp、能流 | Bool |
ENO | 能流 | Bool | |
SCL | EN1 | TRUE, FALSE | Bool |
ENO2 | TRUE, FALSE | Bool |
1 EN 僅適用于 FB。
2 可以選擇將 ENO 與 SCL 代碼塊一起使用。 代碼塊完成時,用戶必須組態(tài) SCL
編譯器來設置 ENO。
通過組態(tài) SCL 來設置 ENO
要組態(tài) SCL 編譯器以設置 ENO,請按以下步驟操作: 1. 從“選項”(Options) 菜單中選擇“設置”(Settings) 命令。
- 展開“PLC 編程”(PLC programming)屬性并選擇“SCL(結構化控制語言)”(SCL(Structured Control Language))。
- 選擇“自動設置ENO”(Set ENO automatically) 選項。
-
PLC控制系統(tǒng)的日常維護和保養(yǎng)比較簡單,主要是更換保險絲和鋰電池,基本沒有其它易損元器件。由于存放用戶程序的隨機存儲器(RAM)、計數(shù)器和具有保持功能的輔助繼電器等均用鋰電池保護,鋰電池的壽命大約為5年,當鋰電池的電壓逐漸降低到一定程度時,PLC基本單元上電池電壓跌落到指示燈亮,提示用戶注意有鋰電池所支持的程序還可保留一周左右,必須更換電池,這是日常維護的主要內容。
調換鋰電池的步驟為:
■在拆裝前,應先讓PLC通電15秒以上(這樣可使作為存儲器備用電源的電容器充電,在鋰電池斷開后,該電容可對PLC做短暫供電,以保護RAM 中的信息不丟失);
■斷開PLC的交流電源;
■打開基本單元的電池蓋板;
■取下舊電池,裝上新電池;
■蓋上電池蓋板。
注意更換電池時間要盡量短,一般不允許超過3分鐘。如果時間過長,RAM中的程序將消失。
此外,應注意更換保險絲時要采用型號的產品。
I/O模塊的更換
若需替換一個模塊,用戶應確認被安裝的模塊是同類型。有些I/O系統(tǒng)允許帶電更換模塊,而有些則需切斷電源。若替換后可解決問題,但在一相對較短時間后又發(fā)生故障,那么用戶應檢查能產生電壓的感性負載,也許需要從外部抑制其電流尖峰。如果保險絲在更換后易被燒斷,則有可能是模塊的輸出電流超限,或輸出設備被短路。
PLC的故障診斷是一個十分重要的問題,是保證PLC控制系統(tǒng)正常、可靠運行的關鍵。本文對常用的故障診斷方法進行了探討。在實際工作過程中,應充分考慮到對PLC的各種不利因素,定期進行檢查和日常維護,以保證PLC控制系統(tǒng)安全、可靠地運行。
PLC的硬件組成部分都有哪些
PLC的硬件主要由*處理器(CPU)、存儲器、輸入單元、輸出單元、通信接口、擴展接口電源等部分組成。其中,CPU是PLC的核心,輸入單元與輸出單元是連接現(xiàn)場輸入/輸出設備與CPU之間的接口電路,通信接口用于與編程器、上位計算機等外設連接。
對于整體式PLC,所有部件都裝在同一機殼內;對于模塊式PLC,各部件獨立封裝成模塊,各模塊通過總線連接,安裝在機架或導軌上。無論是哪種結構類型的PLC,都可根據(jù)用戶需要進行配置與組合。
盡管整體式與模塊式PLC的結構不太一樣,但各部分的功能作用是相同的,下面對PLC主要組成各部分進行簡單介紹。
1、*處理單元(CPU)
同一般的微機一樣,CPU是PLC的核心。PLC中所配置的CPU 隨機型不同而不同,常用有三類:通用微處理器(如Z80、8086、80286等)、單片微處理器(如8031、8096等)和位片式微處理器(如AMD29W等) 。小型PLC大多采用8位通用微處理器和單片微處理器;中型PLC大多采用16位通用微處理器或單片微處理器;大型PLC大多采用高速位片式微處理器。
目前,小型PLC為單CPU系統(tǒng),而中、大型PLC則大多為雙CPU系統(tǒng),甚至有些PLC中多達8 個CPU。對于雙CPU系統(tǒng),一般一個為字處理器,一般采用8位或16位處理器;另一個為位處理器,采用由各廠家設計制造的芯片。字處理器為主處理器,用于執(zhí)行編程器接口功能,監(jiān)視內部定時器,監(jiān)視掃描時間,處理字節(jié)指令以及對系統(tǒng)總線和位處理器進行控制等。位處理器為從處理器,主要用于處理位操作指令和實現(xiàn)PLC編程語言向機器語言的轉換。位處理器的采用,提高了PLC的速度,使PLC更好地滿足實時控制要求。
在PLC中CPU按系統(tǒng)程序賦予的功能,指揮PLC有條不紊地進行工作,歸納起來主要有以下幾個方面:
1)接收從編程器輸入的用戶程序和數(shù)據(jù)。
2)診斷電源、PLC內部電路的工作故障和編程中的語法錯誤等。
3)通過輸入接口接收現(xiàn)場的狀態(tài)或數(shù)據(jù),并存入輸入映象寄有器或數(shù)據(jù)寄存器中。
4)從存儲器逐條讀取用戶程序,經過解釋后執(zhí)行。
5)根據(jù)執(zhí)行的結果,更新有關標志位的狀態(tài)和輸出映象寄存器的內容,通過輸出單元實現(xiàn)輸出控制。有些PLC還具有制表打印或數(shù)據(jù)通信等功能。
2、存儲器
存儲器主要有兩種:一種是可讀/寫操作的隨機存儲器RAM,另一種是只讀存儲器ROM、PROM 、EPROM 和EEPROM。在PLC中,存儲器主要用于存放系統(tǒng)程序、用戶程序及工作數(shù)據(jù)。
系統(tǒng)程序是由PLC 的制造廠家編寫的,和PLC的硬件組成有關,完成系統(tǒng)診斷、命令解釋、功能子程序調用管理、邏輯運算、通信及各種參數(shù)設定等功能,提供PLC運行的平臺。系統(tǒng)程序關系到PLC的性能,而且在PLC使用過程中不會變動,所以是由制造廠家直接固化在只讀存儲器ROM、PROM或EPROM中,用戶不能訪問和修改。
用戶程序是隨PLC的控制對象而定的,由用戶根據(jù)對象生產工藝的控制要求而編制的應用程序。為了便于讀出、檢查和修改,用戶程序一般存于CMOS靜態(tài)RAM中,用鋰電池作為后備電源,以保證掉電時不會丟失信息。為了防止干擾對RAM中程序的破壞,當用戶程序經過運行正常,不需要改變,可將其固化在只讀存儲器EPROM中?,F(xiàn)在有許多PLC直接采用EEPROM作為用戶存儲器。
工作數(shù)據(jù)是PLC運行過程中經常變化、經常存取的一些數(shù)據(jù)。存放在RAM中,以適應隨機存取的要求。在PLC的工作數(shù)據(jù)存儲器中,設有存放輸入輸出繼電器、輔助繼電器、定時器、計數(shù)器等邏輯器件的存儲區(qū),這些器件的狀態(tài)都是由用戶程序的初始設置和運行情況而確定的。根據(jù)需要,部分數(shù)據(jù)在掉電時用后備電池維持其現(xiàn)有的狀態(tài),這部分在掉電時可保存數(shù)據(jù)的存儲區(qū)域稱為保持數(shù)據(jù)區(qū)。
由于系統(tǒng)程序及工作數(shù)據(jù)與用戶無直接聯(lián)系,所以在PLC 產品樣本或使用手冊中所列存儲器的形式及容量是指用戶程序存儲器。當PLC提供的用戶存儲器容量不夠用,許多PLC還提供有存儲器擴展功能。
重慶西門子S7-1200代理商(歡迎您)總代理