在編寫梯形圖比較程序時(shí)有個(gè)小問題需要注意,OB40_MDL_ADDR和OB40_POINT_ADDR的數(shù)字類型分別是字和雙字,不能直接用于整數(shù)比較指令和雙整數(shù)比較指令。需要將它們保存到其他地址,然后參與比較。
S7 200:用于小型的電氣控制系統(tǒng)中,著重于邏輯控制;
S7 300:用于稍大系統(tǒng),可實(shí)現(xiàn)復(fù)雜的工藝控制,如PID、脈寬調(diào)制等;
S7 400:用于大型控制系統(tǒng),主要是實(shí)現(xiàn)冗余控制。
200屬于小型機(jī),300屬于中型機(jī),小型機(jī)也是多功能機(jī),將所有功能結(jié)合在一起,它的控制規(guī)模為zui大512點(diǎn),CPU的運(yùn)算處理速度不及中大型機(jī)快,小型機(jī)多為整體式的,擴(kuò)展模塊zui多可加8塊,適用于小型設(shè)備,性價(jià)比高;中大型機(jī)結(jié)構(gòu)是模塊化的,zui多可加300多塊擴(kuò)展模塊,中大型機(jī)硬件較貴,成本高,但其運(yùn)算處理速度快,有很強(qiáng)的通信功能,主要應(yīng)用于中大型生產(chǎn)線,如化工行業(yè),造紙行業(yè),鋼鐵行業(yè),汽車生產(chǎn)線,大型*空調(diào),污水處理等,中國(guó)的中大型機(jī)以西門子的300和400為主,西門子的產(chǎn)品性能穩(wěn)定,網(wǎng)絡(luò)通信功能強(qiáng)大,程序簡(jiǎn)單,性價(jià)比高。
![](http://img.jdzj.com/UserDocument/2015c/tianjun2001/Picture/201672614229.jpg)
一、硬件區(qū)別:
(1)zui主要地區(qū)別就是S7-300/400更模塊化了,S7-200系列是整體式的,CPU模塊、I/O模塊和電源模塊都在一個(gè)模塊內(nèi),稱為CPU模塊;而S7-300/400系列的,從電源,I/O,CPU都是單獨(dú)模塊的。但是這么說容易讓人誤解200系列不能擴(kuò)展,實(shí)際上200系列也可以擴(kuò)展,只不過買來的CPU模塊集成了部分功能,一些小型系統(tǒng)不需要另外定制模塊,200系列的模塊也有信號(hào)、通信、位控等模塊。
(2)200系列的對(duì)機(jī)架沒有什么概念,稱之為導(dǎo)軌;為了便于分散控制,300/400系列的模塊裝在一根導(dǎo)軌上的,稱之為一個(gè)機(jī)架,與*機(jī)架對(duì)應(yīng)的是擴(kuò)展機(jī)架,機(jī)架還在軟件里反映出來。
(3)200系列的同一機(jī)架上的模塊之間是通過模塊正上方的數(shù)據(jù)接頭的;而300/400則是通過在底部的U型總線連接器連接的。
(4)300/400系列的I/O輸入是接在前連接器上的,前連接器再接在信號(hào)模塊上,而不是I/O信號(hào)直接接在信號(hào)模塊上,這樣可以更換信號(hào)模塊而不用重新接線。
(5)300/400系列的CPU帶有profibus(profibus是一種化.開放式.不依賴于設(shè)備生產(chǎn)商的現(xiàn)場(chǎng)總線標(biāo)準(zhǔn))接口。
![](http://img.jdzj.com/UserDocument/2015c/tianjun2001/Picture/2016726145111.jpg)
二、軟件區(qū)別:
(1)200系列用的STEP7-Micro/WIN32軟件;300/400使用的是STEP7軟件,帶了Micro和不帶的區(qū)別是相當(dāng)?shù)拿黠@的。
(2)200系列的編程語言有三種--語句表(STL)、梯形圖(LAD)、功能塊圖(FBD);300/400系列的除了這三種外,還有結(jié)構(gòu)化控制語言(SCL)和圖形語言(S7 graph)。
(3)300/400軟件zui大的特點(diǎn)就是提供了一些數(shù)據(jù)塊來對(duì)應(yīng)每一個(gè)功能塊( Block-FB),稱之為Instance。
(4)300/400再也不能隨意的自定義Organization Block、sub-routine和Interrupt routine了,現(xiàn)在OB1惟我獨(dú)尊了,沒事系統(tǒng)只能調(diào)用它了,其它的什么東東則變成了FB- Block和FC-,其它的也是預(yù)定義成了系統(tǒng)的了,System的S給它們(SFB、SFC)定義了自己的身份。
(5)300/400中提供了累加器(ACCU)和狀態(tài)字寄存器、診斷緩沖區(qū)。
西門子模塊6GK7342-5DA02-0XE0
編寫、編譯并下載程序 編寫好的程序如下圖:
西門子電纜6ES7 902-3AG00-0AA0
![](https://www.siemensplc.com/wp-content/uploads/2018/12/20181228140243.png)
編寫、編譯并下載程序
編寫、編譯并下載程序 可在PLC變量表里面為變量命名
西門子RS485電纜6ES7 902-3AB00-0AA0
![](https://www.siemensplc.com/wp-content/uploads/2018/12/20181228140318.png)
變量命名
編寫、編譯并下載程序 編譯并下載程序
參數(shù) | 接口 | 數(shù)據(jù)類型 | 描述 |
---|
in | Input | DInt | 需要做積分計(jì)算的值 |
enable | Input | Bool | 使能積分計(jì)算 |
reset | Input | Bool | 復(fù)位( 為 True 時(shí)復(fù)位輸出參數(shù)) |
out | Output | LReal | 積分后的值(可保持) |
error | Output | Bool | 錯(cuò)誤輸出
|
在STEP7(TIA Portal)中如何安全地并且間接地尋址?
描述
采用間接尋址時(shí),只有程序執(zhí)行時(shí),用于讀或?qū)憯?shù)值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。通常來講,程序創(chuàng)建后訪問地址也就確定了。為了使得間接尋址更靈活和更安全,可以
- 使用"Array"數(shù)據(jù)類型用于組合相同的數(shù)據(jù)類型。
- 對(duì)于不同的存儲(chǔ)區(qū),采用index來訪問相關(guān)的針對(duì)每個(gè)應(yīng)用不同的變量。
在下面的例子中,對(duì)于三個(gè)變量的訪問采用了不同的存儲(chǔ)區(qū)。表01 顯示了三個(gè)變量的訪問列表,每個(gè)都有單獨(dú)的索引。
索引 | 訪問變量 | 存儲(chǔ)區(qū) |
1 | Input_Word_0 | EW 0 |
2 | "Processdata".Temperature | DB 1 |
3 | Output_Word_4 | AW 4 |
表01
創(chuàng)建一個(gè)功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對(duì)于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值??梢栽诔绦蛑兄苯邮褂瞄g接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
- 可追蹤,因?yàn)榭梢允褂媒徊嫠饕?/li>
- 安全,因?yàn)閮H使用了預(yù)定義的內(nèi)存區(qū)。
- 通用,因?yàn)榧瓤梢杂糜跇?biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_01_e.png)
在下面的示例中數(shù)據(jù)被從三個(gè)不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭?。三個(gè)數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
- DB 變量1:"MyBool" Bool類型
- DB 變量2:"MyInt" Int類型
- DB 變量3:"MyWord" Word類型
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_02.png)
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的?;诖丝梢栽谝粋€(gè)FB中間接訪問,例如如圖.03所示的指令:
- "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_03_e.png)
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13創(chuàng)建。
下表列出了 FB "Integration" 的輸入和輸出參數(shù)。
參數(shù) | 接口 | 數(shù)據(jù)類型 | 描述 |
---|
in | Input | DInt | 需要做積分計(jì)算的值 |
enable | Input | Bool | 使能積分計(jì)算 |
reset | Input | Bool | 復(fù)位( 為 True 時(shí)復(fù)位輸出參數(shù)) |
out | Output | LReal | 積分后的值(可保持) |
error | Output | Bool | 錯(cuò)誤輸出
|
在STEP7(TIA Portal)中如何安全地并且間接地尋址?
描述
采用間接尋址時(shí),只有程序執(zhí)行時(shí),用于讀或?qū)憯?shù)值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。通常來講,程序創(chuàng)建后訪問地址也就確定了。為了使得間接尋址更靈活和更安全,可以
- 使用"Array"數(shù)據(jù)類型用于組合相同的數(shù)據(jù)類型。
- 對(duì)于不同的存儲(chǔ)區(qū),采用index來訪問相關(guān)的針對(duì)每個(gè)應(yīng)用不同的變量。
在下面的例子中,對(duì)于三個(gè)變量的訪問采用了不同的存儲(chǔ)區(qū)。表01 顯示了三個(gè)變量的訪問列表,每個(gè)都有單獨(dú)的索引。
索引 | 訪問變量 | 存儲(chǔ)區(qū) |
1 | Input_Word_0 | EW 0 |
2 | "Processdata".Temperature | DB 1 |
3 | Output_Word_4 | AW 4 |
表01
創(chuàng)建一個(gè)功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對(duì)于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值。可以在程序中直接使用間接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
- 可追蹤,因?yàn)榭梢允褂媒徊嫠饕?/li>
- 安全,因?yàn)閮H使用了預(yù)定義的內(nèi)存區(qū)。
- 通用,因?yàn)榧瓤梢杂糜跇?biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
控制模式
1、 系統(tǒng)設(shè)置遠(yuǎn)程/本地/手動(dòng)按鈕
1.1、 遠(yuǎn)程:只能通過上位機(jī)對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/停控制,單臺(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過上位機(jī)對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.2、 本地:只能通過觸摸屏對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/??刂疲瑔闻_(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過觸摸屏對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.3、 手動(dòng):手動(dòng)控制時(shí),上位機(jī)/觸摸屏失效,只能通過手動(dòng)控制設(shè)備的啟/停。
2、 單臺(tái)設(shè)備控制
單臺(tái)設(shè)備必須有軟手操/自動(dòng)切換以及軟手操時(shí)可以啟/停功能,由自動(dòng)切換到軟手操時(shí),設(shè)備不能停機(jī);由軟手操切換到自動(dòng)時(shí),設(shè)備啟/停取決于自動(dòng)程序。
3、 單臺(tái)設(shè)備(泵、風(fēng)機(jī)及其它大型設(shè)備)運(yùn)行滿24小時(shí)必須進(jìn)行輪換,且必須有運(yùn)行時(shí)間累計(jì),如果由上位機(jī)設(shè)定啟/停順序除外,操作人員自行設(shè)定;
三、編程技巧
1、 程序塊盡量細(xì)化,方便閱讀,將同一類型的設(shè)備控制放在一個(gè)程序塊中;
2、 如遇特殊情況下采用語言編程,多數(shù)情況下請(qǐng)使用梯形圖編程,方便別人閱讀;
3、 對(duì)于經(jīng)常調(diào)用的子程序,可以做成子模塊,頻繁調(diào)用,例如:求幾個(gè)數(shù)平均值或求幾個(gè)數(shù)的大值;
4、 程序要有注釋,變量及中間變量必須有描述,方便別人閱讀或以后查閱;
5、 定期做程序備份,工程名稱+系統(tǒng)名稱+當(dāng)天日期;
6、 程序加密,防止別人竊取。
我想說plc入門容易,深造難啊。對(duì)于一些初學(xué)者,看看書看看視頻沒有專門的去實(shí)踐學(xué)習(xí),大部分了解了plc的原理,設(shè)計(jì)一些簡(jiǎn)單的程序可以運(yùn)用自如,但是碰到一些復(fù)雜的要求時(shí),就懵逼了,因?yàn)槲乙郧耙矔r(shí)常懵逼。plc這個(gè)東西就得把指令融匯貫通,運(yùn)用自如,才能編出一些較復(fù)雜的程序。下面簡(jiǎn)單介紹一下學(xué)plc的技巧和方法,讓大家更快地去熟悉plc、掌握plc,讓我們口袋里的錢變得鼓鼓的。
![](https://www.siemensplc.com/wp-content/uploads/2018/12/%E8%A5%BF%E9%97%A8%E5%AD%90S7-300%E7%B3%BB%E5%88%97PLC%E5%AE%89%E8%A3%85%E7%A4%BA%E6%84%8F%E5%9B%BE.jpg)
首先、你得對(duì)編程感興趣,設(shè)計(jì)出程序來感覺有成就感。有的人一看到界面,一看到要求,哎呦媽呀暈暈暈,哥快來扶我一把。這樣的同學(xué)我勸你這輩子就告別工控這條路吧。
第二、學(xué)習(xí)plc編程要有一定的電器基礎(chǔ),要明白各個(gè)電器的用途,因?yàn)镻LC說白了也就是把很多的電器實(shí)物程序化(比如說各種繼電器及計(jì)數(shù)器等),但是也有的人跨專業(yè)來學(xué),感覺工控好啊,工控好神奇啊,帶著強(qiáng)烈的興趣來探索工控這個(gè)奧秘。這樣的同學(xué)可能后比有基礎(chǔ)的同學(xué)學(xué)的還要好。
第三、選擇一個(gè)品牌。
老大當(dāng)然是西門子,尤其在冶金方面接近于99%。ABB在石油方面用到的很廣。羅克韋爾也不錯(cuò),就是價(jià)格稍微高一點(diǎn)。還有就是施耐德了。然后呢就是日本的一些牌子了,三菱、歐姆龍等。其次就是中國(guó)的一些品牌了比如說和利時(shí),臺(tái)達(dá)、信捷等一些品牌了。
第四、沒時(shí)間的可以買本書買些視頻或者看看,電腦下載一個(gè)對(duì)應(yīng)的編程軟件,試著編繪簡(jiǎn)易梯形圖:一般以現(xiàn)有的電工原理圖,根據(jù)其工作原理進(jìn)行繪制,由淺 入深,先求畫出,再求簡(jiǎn)單明了,慢慢領(lǐng)會(huì)繪制梯形圖心得。首先要理解電工原理圖的工作原理,根據(jù)電 工原理圖的工作原理,再按 PLC 的要求進(jìn)行繪制。應(yīng)把握的是,不能簡(jiǎn)單地將 PLC 各接點(diǎn)與電工原理圖上 的各接點(diǎn)一一對(duì)應(yīng)(這是初學(xué)者的通病),若是這樣的話就有可能步入死胡同,繪制的梯形圖只要能達(dá)到 目的即可。有條件的就整個(gè)硬件或者模擬器。
再有條件又有時(shí)間就去報(bào)培訓(xùn)班學(xué)吧,那樣學(xué)得會(huì)比自己學(xué)的全面容易,也有硬件供你練習(xí)實(shí)踐
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_01_e.png)
在下面的示例中數(shù)據(jù)被從三個(gè)不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭?。三個(gè)數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
- DB 變量1:"MyBool" Bool類型
- DB 變量2:"MyInt" Int類型
- DB 變量3:"MyWord" Word類型
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_02.png)
![](https://www.siemensplc.com/wp-content/uploads/2018/12/20181228140355.png)
編譯并下載程序
為了近似測(cè)定面積,使用以SCL語言編寫的FB "Integration"程序塊可以持續(xù)對(duì)區(qū)域面積進(jìn)行累加。
說明
積分是對(duì)給定函數(shù)曲線的面積進(jìn)行數(shù)學(xué)計(jì)算。但是實(shí)際曲線往往沒有明確的數(shù)學(xué)關(guān)系,而是隨時(shí)間變化的模擬量。積分計(jì)算就是把所有由兩個(gè)過程值與時(shí)間所圍成的梯形區(qū)域面積相加,梯形面積等于兩個(gè)過程值的平均值乘以時(shí)間間隔。
西門子電纜6ES7 902-3AG00-0AA0
![](https://www.siemensplc.com/wp-content/uploads/2019/01/42469594_S7-1200_Integration_1.png)
下載附件是以SCL語言編寫的用于計(jì)算積分的 "Integration" 功能塊
![](https://www.siemensplc.com/wp-content/uploads/2019/01/Integration.png)
表示了FB "Integration"的調(diào)用參數(shù)。FB "Integration"中 "in"參數(shù)為轉(zhuǎn)化為浮點(diǎn)數(shù)的模擬量輸入值。
- 如果"enable" 參數(shù)接收到 "False" 值,那么積分計(jì)算將停止并且"out"參數(shù)輸出后計(jì)算值。
- 如果 "reset"接收到 "True"值,那么"out"輸出將復(fù)位為零。
- 計(jì)算結(jié)果存儲(chǔ)于 "out" 輸出。
- 當(dāng)使能積分后,"error"會(huì)在啟動(dòng)計(jì)算時(shí)輸出一個(gè)周期的"True"信號(hào)(信號(hào)在積分計(jì)算期間失效)。
要使用 "in"參數(shù)的輸入值啟動(dòng)積分計(jì)算,必須
- 設(shè)置"enable"參數(shù)的值為"True"。
- 設(shè)置 "reset"參數(shù)的值為 "False"。
- 西門子電纜6ES7 902-3AC00-0AA0
![](https://www.siemensplc.com/wp-content/uploads/2019/01/in.png)
下表列出了 FB "Integration" 的輸入和輸出參數(shù)。
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的。基于此可以在一個(gè)FB中間接訪問,例如如圖.03所示的指令:
- "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_03_e.png)
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 V13創(chuàng)建。
為了plc程序可讀性強(qiáng),短期內(nèi)可以讀懂并且能夠修改,在PLC工作組內(nèi)部需要統(tǒng)一我們的編程標(biāo)準(zhǔn),以便適應(yīng)將來工程人員調(diào)動(dòng)后,原來的程序能夠被后來的人在短期內(nèi)讀懂,現(xiàn)統(tǒng)一標(biāo)準(zhǔn)如下:
一、程序結(jié)構(gòu)
1、 程序結(jié)構(gòu)統(tǒng)一
OB1:主程序;
OB100:初始化程序(無需主程序調(diào)用);
OB35:100ms(可修改)中斷(無需主程序調(diào)用),可以調(diào)用PID模塊;
OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障診斷模塊(無需主程序調(diào)用、無需編程);
FC1:系統(tǒng)模式;
FC2:輸入處理;
FC3:輸出處理;
FC4:運(yùn)行處理;
FC5:停止處理;
FC6:手自動(dòng)切換;
FC7:
。。。
。。。
FC100:之后用來建立一些可以循環(huán)調(diào)用的子程序;
FC105:系統(tǒng)自帶,模擬量輸入子程序(可以循環(huán)調(diào)用);
FC106:系統(tǒng)自帶,模擬量輸出子程序(可以循環(huán)調(diào)用);
modbus通訊(CP341):FB7:P_RCV_RK,F(xiàn)B8:P_SND_RK;
通訊CP340:FB2:P_RCV,F(xiàn)B3:P_SND;
一般PID:用FB41;
溫、濕度PID:用FB58;
如果程序塊與系統(tǒng)塊重復(fù),請(qǐng)避讓。
2、 數(shù)據(jù)塊
DB1:AI數(shù)據(jù),類型:REAL,與上位機(jī)接口;
DB2:AO數(shù)據(jù),類型:REAL,與上位機(jī)接口;
DB3:DI數(shù)據(jù),類型:BOOL,與上位機(jī)接口;
DB4:DO數(shù)據(jù),類型:BOOL,與上位機(jī)接口;
DB5:設(shè)備運(yùn)行時(shí)間及流量累計(jì),類型:REAL,與上位機(jī)接口;
DB6:報(bào)警消息,類型:BOOL,與上位機(jī)接口;
DB7:類型:REAL,中間寄存器;
DB8:類型:INT,中間寄存器;
DB9:類型:WORD,中間寄存器;
DB10:類型:BOOL,中間寄存器;
DB11:之后用作與設(shè)備通訊用,例如:MODBUS通訊等;
DB100:之后用作調(diào)用FB塊時(shí)的背景數(shù)據(jù)塊;
M區(qū):也作為中間變量。
參數(shù) | 接口 | 數(shù)據(jù)類型 | 描述 |
---|
in | Input | DInt | 需要做積分計(jì)算的值 |
enable | Input | Bool | 使能積分計(jì)算 |
reset | Input | Bool | 復(fù)位( 為 True 時(shí)復(fù)位輸出參數(shù)) |
out | Output | LReal | 積分后的值(可保持) |
error | Output | Bool | 錯(cuò)誤輸出
|
在STEP7(TIA Portal)中如何安全地并且間接地尋址?
描述
采用間接尋址時(shí),只有程序執(zhí)行時(shí),用于讀或?qū)憯?shù)值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。通常來講,程序創(chuàng)建后訪問地址也就確定了。為了使得間接尋址更靈活和更安全,可以
- 使用"Array"數(shù)據(jù)類型用于組合相同的數(shù)據(jù)類型。
- 對(duì)于不同的存儲(chǔ)區(qū),采用index來訪問相關(guān)的針對(duì)每個(gè)應(yīng)用不同的變量。
在下面的例子中,對(duì)于三個(gè)變量的訪問采用了不同的存儲(chǔ)區(qū)。表01 顯示了三個(gè)變量的訪問列表,每個(gè)都有單獨(dú)的索引。
索引 | 訪問變量 | 存儲(chǔ)區(qū) |
1 | Input_Word_0 | EW 0 |
2 | "Processdata".Temperature | DB 1 |
3 | Output_Word_4 | AW 4 |
表01
創(chuàng)建一個(gè)功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對(duì)于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值??梢栽诔绦蛑兄苯邮褂瞄g接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
- 可追蹤,因?yàn)榭梢允褂媒徊嫠饕?/li>
- 安全,因?yàn)閮H使用了預(yù)定義的內(nèi)存區(qū)。
- 通用,因?yàn)榧瓤梢杂糜跇?biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_01_e.png)
在下面的示例中數(shù)據(jù)被從三個(gè)不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭?。三個(gè)數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
- DB 變量1:"MyBool" Bool類型
- DB 變量2:"MyInt" Int類型
- DB 變量3:"MyWord" Word類型
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_02.png)
創(chuàng)建的PLC數(shù)據(jù)類型"SiloUDT"用于尋址包含不同數(shù)據(jù)類型的DB變量。 "AccessGroupSiloRead"功能塊用于讀出返回值,是由PLC 數(shù)據(jù)類型 "SiloUDT"定義的?;诖丝梢栽谝粋€(gè)FB中間接訪問,例如如圖.03所示的指令:
- "Silo_Handling_OnlyReading"("AccessGroupSiloRead"(Index:= #Silo_Index));
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_03_e.png)
創(chuàng)建環(huán)境
此FAQ中的截屏由 STEP 7 (TIA Portal) V13創(chuàng)建。
下表列出了 FB "Integration" 的輸入和輸出參數(shù)。
參數(shù) | 接口 | 數(shù)據(jù)類型 | 描述 |
---|
in | Input | DInt | 需要做積分計(jì)算的值 |
enable | Input | Bool | 使能積分計(jì)算 |
reset | Input | Bool | 復(fù)位( 為 True 時(shí)復(fù)位輸出參數(shù)) |
out | Output | LReal | 積分后的值(可保持) |
error | Output | Bool | 錯(cuò)誤輸出
|
在STEP7(TIA Portal)中如何安全地并且間接地尋址?
描述
采用間接尋址時(shí),只有程序執(zhí)行時(shí),用于讀或?qū)憯?shù)值的地址才得以確定。使用這種方法可以減少編程量并使得程序更靈活。通常來講,程序創(chuàng)建后訪問地址也就確定了。為了使得間接尋址更靈活和更安全,可以
- 使用"Array"數(shù)據(jù)類型用于組合相同的數(shù)據(jù)類型。
- 對(duì)于不同的存儲(chǔ)區(qū),采用index來訪問相關(guān)的針對(duì)每個(gè)應(yīng)用不同的變量。
在下面的例子中,對(duì)于三個(gè)變量的訪問采用了不同的存儲(chǔ)區(qū)。表01 顯示了三個(gè)變量的訪問列表,每個(gè)都有單獨(dú)的索引。
索引 | 訪問變量 | 存儲(chǔ)區(qū) |
1 | Input_Word_0 | EW 0 |
2 | "Processdata".Temperature | DB 1 |
3 | Output_Word_4 | AW 4 |
表01
創(chuàng)建一個(gè)功能,并聲明輸入變量為"Int"類型。圖.01 顯示了對(duì)于"AccessGroupInt"功能塊的編程示例,通過index進(jìn)行間接尋址并返回值??梢栽诔绦蛑兄苯邮褂瞄g接訪問,例如使用指令#TempValue:= "AccessGroupInt"(#Index);。這一編程方法
- 可追蹤,因?yàn)榭梢允褂媒徊嫠饕?/li>
- 安全,因?yàn)閮H使用了預(yù)定義的內(nèi)存區(qū)。
- 通用,因?yàn)榧瓤梢杂糜跇?biāo)準(zhǔn)塊也可以用于優(yōu)化的數(shù)據(jù)區(qū) 。
控制模式
1、 系統(tǒng)設(shè)置遠(yuǎn)程/本地/手動(dòng)按鈕
1.1、 遠(yuǎn)程:只能通過上位機(jī)對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/??刂?,單臺(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過上位機(jī)對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.2、 本地:只能通過觸摸屏對(duì)系統(tǒng)進(jìn)行自動(dòng)啟/??刂?,單臺(tái)設(shè)備就地控制優(yōu)先,在程控時(shí),可以通過觸摸屏對(duì)設(shè)備進(jìn)行軟手操/自動(dòng)切換,軟手操啟/停;
1.3、 手動(dòng):手動(dòng)控制時(shí),上位機(jī)/觸摸屏失效,只能通過手動(dòng)控制設(shè)備的啟/停。
2、 單臺(tái)設(shè)備控制
單臺(tái)設(shè)備必須有軟手操/自動(dòng)切換以及軟手操時(shí)可以啟/停功能,由自動(dòng)切換到軟手操時(shí),設(shè)備不能停機(jī);由軟手操切換到自動(dòng)時(shí),設(shè)備啟/停取決于自動(dòng)程序。
3、 單臺(tái)設(shè)備(泵、風(fēng)機(jī)及其它大型設(shè)備)運(yùn)行滿24小時(shí)必須進(jìn)行輪換,且必須有運(yùn)行時(shí)間累計(jì),如果由上位機(jī)設(shè)定啟/停順序除外,操作人員自行設(shè)定;
三、編程技巧
1、 程序塊盡量細(xì)化,方便閱讀,將同一類型的設(shè)備控制放在一個(gè)程序塊中;
2、 如遇特殊情況下采用語言編程,多數(shù)情況下請(qǐng)使用梯形圖編程,方便別人閱讀;
3、 對(duì)于經(jīng)常調(diào)用的子程序,可以做成子模塊,頻繁調(diào)用,例如:求幾個(gè)數(shù)平均值或求幾個(gè)數(shù)的大值;
4、 程序要有注釋,變量及中間變量必須有描述,方便別人閱讀或以后查閱;
5、 定期做程序備份,工程名稱+系統(tǒng)名稱+當(dāng)天日期;
6、 程序加密,防止別人竊取。
我想說plc入門容易,深造難啊。對(duì)于一些初學(xué)者,看看書看看視頻沒有專門的去實(shí)踐學(xué)習(xí),大部分了解了plc的原理,設(shè)計(jì)一些簡(jiǎn)單的程序可以運(yùn)用自如,但是碰到一些復(fù)雜的要求時(shí),就懵逼了,因?yàn)槲乙郧耙矔r(shí)常懵逼。plc這個(gè)東西就得把指令融匯貫通,運(yùn)用自如,才能編出一些較復(fù)雜的程序。下面簡(jiǎn)單介紹一下學(xué)plc的技巧和方法,讓大家更快地去熟悉plc、掌握plc,讓我們口袋里的錢變得鼓鼓的。
![](https://www.siemensplc.com/wp-content/uploads/2018/12/%E8%A5%BF%E9%97%A8%E5%AD%90S7-300%E7%B3%BB%E5%88%97PLC%E5%AE%89%E8%A3%85%E7%A4%BA%E6%84%8F%E5%9B%BE.jpg)
首先、你得對(duì)編程感興趣,設(shè)計(jì)出程序來感覺有成就感。有的人一看到界面,一看到要求,哎呦媽呀暈暈暈,哥快來扶我一把。這樣的同學(xué)我勸你這輩子就告別工控這條路吧。
第二、學(xué)習(xí)plc編程要有一定的電器基礎(chǔ),要明白各個(gè)電器的用途,因?yàn)镻LC說白了也就是把很多的電器實(shí)物程序化(比如說各種繼電器及計(jì)數(shù)器等),但是也有的人跨專業(yè)來學(xué),感覺工控好啊,工控好神奇啊,帶著強(qiáng)烈的興趣來探索工控這個(gè)奧秘。這樣的同學(xué)可能后比有基礎(chǔ)的同學(xué)學(xué)的還要好。
第三、選擇一個(gè)品牌。
老大當(dāng)然是西門子,尤其在冶金方面接近于99%。ABB在石油方面用到的很廣。羅克韋爾也不錯(cuò),就是價(jià)格稍微高一點(diǎn)。還有就是施耐德了。然后呢就是日本的一些牌子了,三菱、歐姆龍等。其次就是中國(guó)的一些品牌了比如說和利時(shí),臺(tái)達(dá)、信捷等一些品牌了。
第四、沒時(shí)間的可以買本書買些視頻或者看看,電腦下載一個(gè)對(duì)應(yīng)的編程軟件,試著編繪簡(jiǎn)易梯形圖:一般以現(xiàn)有的電工原理圖,根據(jù)其工作原理進(jìn)行繪制,由淺 入深,先求畫出,再求簡(jiǎn)單明了,慢慢領(lǐng)會(huì)繪制梯形圖心得。首先要理解電工原理圖的工作原理,根據(jù)電 工原理圖的工作原理,再按 PLC 的要求進(jìn)行繪制。應(yīng)把握的是,不能簡(jiǎn)單地將 PLC 各接點(diǎn)與電工原理圖上 的各接點(diǎn)一一對(duì)應(yīng)(這是初學(xué)者的通病),若是這樣的話就有可能步入死胡同,繪制的梯形圖只要能達(dá)到 目的即可。有條件的就整個(gè)硬件或者模擬器。
再有條件又有時(shí)間就去報(bào)培訓(xùn)班學(xué)吧,那樣學(xué)得會(huì)比自己學(xué)的全面容易,也有硬件供你練習(xí)實(shí)踐
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_01_e.png)
在下面的示例中數(shù)據(jù)被從三個(gè)不同的優(yōu)化的數(shù)據(jù)塊中讀出或?qū)懭搿H齻€(gè)數(shù)據(jù)塊"Silo_Water", "Silo_Sugar" 和"Silo_Milk"都包含相同的變量聲明:
- DB 變量1:"MyBool" Bool類型
- DB 變量2:"MyInt" Int類型
- DB 變量3:"MyWord" Word類型
![](https://www.siemensplc.com/wp-content/uploads/2019/01/step7_tia_portal_saved_indirect_addressing_02.png)
4.2 如何判斷編碼器的好壞
可以通過以下幾種方法判斷編碼器的好壞:
- 將編碼器接入 PLC的高速計(jì)數(shù)模塊,通過讀取實(shí)際脈沖個(gè)數(shù)或碼值來判斷編碼器輸出是否正確。
- 通過示波器查看編碼器輸出波形,根據(jù)實(shí)際的輸出波形來判斷編碼器是否正常。
- 通過萬用表的電壓檔來測(cè)量編碼器輸出信號(hào)電壓來判斷編碼器是否正常,具體操作方法如下:
1)編碼器為NPN晶體管輸出時(shí),用萬用表測(cè)量電源正極和信號(hào)輸出線之間的電壓
- 導(dǎo)通時(shí)輸出電壓接近供電電壓
- 關(guān)斷時(shí)輸出電壓接近 0V
2)編碼器為PNP晶體管輸出時(shí),用萬用表測(cè)量測(cè)量電源負(fù)極和信號(hào)輸出線之間的電壓
- 導(dǎo)通時(shí)輸出電壓接近供電電壓
- 關(guān)斷時(shí)輸出電壓接近 0V
4.3 計(jì)數(shù)不準(zhǔn)確的原因及相應(yīng)的避免措施
在實(shí)際應(yīng)用中,導(dǎo)致計(jì)數(shù)或測(cè)量不準(zhǔn)確的原因很多,其中主要應(yīng)注意以下幾點(diǎn):
- 編碼器安裝的現(xiàn)場(chǎng)環(huán)境有抖動(dòng),編碼器和電機(jī)軸之間有松動(dòng),沒有固定緊。
- 旋轉(zhuǎn)速度過快,超出編碼器的高響應(yīng)頻率。
- 編碼器的脈沖輸出頻率大于計(jì)數(shù)器輸入脈沖高頻率。
- 信號(hào)傳輸過程中受到干擾。
針對(duì)以上問題的避免措施:
- 檢查編碼器的機(jī)械安裝,是否打滑、跳齒、齒輪齒隙是否過大等。
- 計(jì)算一下高脈沖頻率,是否接近或超過了極限值。
- 確保高速計(jì)數(shù)模塊能夠接收的大脈沖頻率大于編碼器的脈沖輸出頻率。
- 檢查信號(hào)線是否過長(zhǎng),是否使用屏蔽雙絞線,按要求做好接地,并采取必要抗干擾措施。
4.4空閑的編碼器信號(hào)線該如何處理
在實(shí)際的應(yīng)用中,可能會(huì)遇到不需要或者模塊不支持的信號(hào)線,例如:
- 對(duì)于帶零位信號(hào)的AB正交編碼器(A、B、N),模塊不支持N相輸入或者不需要Z信號(hào)。
- 對(duì)于差分輸出信號(hào)(A、/A,B、/B,N、/N),模塊不支持反向信號(hào)(/A,/B,/N)的輸入。
- 對(duì)于這些信號(hào)線,不需要特殊的處理,可以直接放棄不用!
4.5增量信號(hào)多重評(píng)估能否提高計(jì)數(shù)頻率
對(duì)于增量信號(hào),可以組態(tài)多重評(píng)估模式,包括雙重評(píng)估和四重評(píng)估。四重評(píng)估是指同時(shí)對(duì)信號(hào) A和B 的正跳沿和負(fù)跳沿進(jìn)行判斷,進(jìn)而得到計(jì)數(shù)值,如圖4-1所示。對(duì)于四重評(píng)估的模式,因?yàn)閷?duì)一個(gè)脈沖進(jìn)行了四倍的處理(四次評(píng)估),所以讀到的計(jì)數(shù)值是實(shí)際輸入脈沖數(shù)的四倍,通過對(duì)信號(hào)的多重評(píng)估可以提高測(cè)量的分辨率。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dc-dcyndgx.png)
圖4-1 四重評(píng)估原理圖
通過以上對(duì)增量信號(hào)多重評(píng)估原理的分析可以看出,多重評(píng)估只是在原計(jì)數(shù)脈沖的基礎(chǔ)上對(duì)計(jì)數(shù)值作了倍頻處理,而實(shí)際上對(duì)實(shí)際輸入脈沖頻率沒有影響,所以也不會(huì)提高模塊的大計(jì)數(shù)頻率。例如,F(xiàn)M350-2的大計(jì)數(shù)頻率為10kHz,那么即使配置為四重評(píng)估的模式,其大的計(jì)數(shù)頻率還是10kHz
編碼器是傳感器的一種,主要用來檢測(cè)機(jī)械運(yùn)動(dòng)的速度、位置、角度、距離和計(jì)數(shù)等,許多馬達(dá)控制均需配備編碼器以供馬達(dá)控制器作為換相、速度及位置的檢出等,應(yīng)用范圍相當(dāng)廣泛。按照不同的分類方法,編碼器可以分為以下幾種類型:
- 根據(jù)檢測(cè)原理,可分為光學(xué)式、磁電式、感應(yīng)式和電容式。
- 根據(jù)輸出信號(hào)形式,可以分為模擬量編碼器、數(shù)字量編碼器。
- 根據(jù)編碼器方式,分為增量式編碼器、式編碼器和混合式編碼器。
2.4 線驅(qū)動(dòng)輸出
如圖 2-7所示,線驅(qū)動(dòng)輸出接口采用了的 IC 芯片,輸出信號(hào)符合RS-422 標(biāo)準(zhǔn),以差分的形式輸出,因此線驅(qū)動(dòng)輸出信號(hào)抗干擾能力更強(qiáng),可以應(yīng)用于高速、長(zhǎng)距離數(shù)據(jù)傳輸?shù)膱?chǎng)合,同時(shí)還具有響應(yīng)速度快和抗噪聲性能強(qiáng)的特點(diǎn)。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dc-dcyndgx.png)
說明:除了上面所列的幾種編碼器輸出的接口類型外,現(xiàn)在好多廠家生產(chǎn)的編碼器還具有智能通信接口,比如PROFIBUS總線接口。這種類型的編碼器可以直接接入相應(yīng)的總線網(wǎng)絡(luò),通過通信的方式讀出實(shí)際的計(jì)數(shù)值或測(cè)量值,這里不做說明。
3 高速計(jì)數(shù)模塊與編碼器的兼容性
高速計(jì)數(shù)模塊主要用于評(píng)估接入模塊的各種脈沖信號(hào),用于對(duì)編碼器輸出的脈沖信號(hào)進(jìn)行計(jì)數(shù)和測(cè)量等。西門子SIMATIC S7的全系列產(chǎn)品都有支持高速計(jì)數(shù)功能的模塊,可以適應(yīng)于各種不同場(chǎng)合的應(yīng)用。
根據(jù)產(chǎn)品功能的不同,每種產(chǎn)品高速計(jì)數(shù)功能所支持的輸入信號(hào)類型也各不相同,在系統(tǒng)設(shè)計(jì)或產(chǎn)品選型時(shí)要特別注意。下表3-1給出了西門子高速計(jì)數(shù)產(chǎn)品與編碼器的兼容性信息,供選型時(shí)參考。
表3-1 高速計(jì)數(shù)產(chǎn)品與編碼器的兼容性
SIMATIC S7 系列產(chǎn)品 | 增量型編碼器 | 值 編碼器 |
24V PNP | 24V NPN | 24V推挽式 | 5V 差分 | SSI |
S7-200 / S7-200 Smart | CPU 集成的HSC | √ | √ | √ | - | - |
S7-1200 | CPU 集成的HSC | √ | √ | √ | - | - |
S7-300 | CPU31xC 集成的 HSC | √ | - | √ | - | - |
FM350-1 | √ | √ | √ | √ | - |
FM350-2 | √ | - | √ | - | - |
SM338 | - | - | - | - | √ |
S7-400 | FM450-1 | √ | √ | √ | √ | - |
ET200S | 1Count 24V | √ | √ | √ | - | - |
1Count 5V | - | - | - | √ | - |
1SSI | - | - | - | - | √ |
S7-1500 | TM Count 2x24V | √ | √ | - | - | |
TM PosInput2 | - | - | - | √ | √ |
ET200SP | TM Count 1x24V | √ | √ | √ | - | - |
TM PosInput1 | - | - | - | √ | √ |
√兼容; - 不兼容
4 編碼器使用的常見問題
4.1 編碼器選型時(shí)要考慮哪些參數(shù)
在編碼器選型時(shí),可以綜合考慮以下幾個(gè)參數(shù):
- 編碼器類型:根據(jù)應(yīng)用場(chǎng)合和控制要求確定選用增量型編碼器還是性編碼器。
- 輸出信號(hào)類型:對(duì)于增量型編碼根據(jù)需要確定輸出接口類型(源型、漏型)。
- 信號(hào)電壓等級(jí):確認(rèn)信號(hào)的電壓等級(jí)(DC24V、DC5V等)。
- 大輸出頻率:根據(jù)應(yīng)用場(chǎng)合和需求確認(rèn)大輸出頻率及分辨率、位數(shù)等參數(shù)。
- 安裝方式、外形尺寸:綜合考慮安裝空間、機(jī)械強(qiáng)度、軸的狀態(tài)、外觀規(guī)格、機(jī)械壽命等要求。
4.2 如何判斷編碼器的好壞
可以通過以下幾種方法判斷編碼器的好壞:
- 將編碼器接入 PLC的高速計(jì)數(shù)模塊,通過讀取實(shí)際脈沖個(gè)數(shù)或碼值來判斷編碼器輸出是否正確。
- 通過示波器查看編碼器輸出波形,根據(jù)實(shí)際的輸出波形來判斷編碼器是否正常。
- 通過萬用表的電壓檔來測(cè)量編碼器輸出信號(hào)電壓來判斷編碼器是否正常,具體操作方法如下:
1)編碼器為NPN晶體管輸出時(shí),用萬用表測(cè)量電源正極和信號(hào)輸出線之間的電壓
- 導(dǎo)通時(shí)輸出電壓接近供電電壓
- 關(guān)斷時(shí)輸出電壓接近 0V
2)編碼器為PNP晶體管輸出時(shí),用萬用表測(cè)量測(cè)量電源負(fù)極和信號(hào)輸出線之間的電壓
- 導(dǎo)通時(shí)輸出電壓接近供電電壓
- 關(guān)斷時(shí)輸出電壓接近 0V
4.3 計(jì)數(shù)不準(zhǔn)確的原因及相應(yīng)的避免措施
在實(shí)際應(yīng)用中,導(dǎo)致計(jì)數(shù)或測(cè)量不準(zhǔn)確的原因很多,其中主要應(yīng)注意以下幾點(diǎn):
- 編碼器安裝的現(xiàn)場(chǎng)環(huán)境有抖動(dòng),編碼器和電機(jī)軸之間有松動(dòng),沒有固定緊。
- 旋轉(zhuǎn)速度過快,超出編碼器的高響應(yīng)頻率。
- 編碼器的脈沖輸出頻率大于計(jì)數(shù)器輸入脈沖高頻率。
- 信號(hào)傳輸過程中受到干擾。
針對(duì)以上問題的避免措施:
- 檢查編碼器的機(jī)械安裝,是否打滑、跳齒、齒輪齒隙是否過大等。
- 計(jì)算一下高脈沖頻率,是否接近或超過了極限值。
- 確保高速計(jì)數(shù)模塊能夠接收的大脈沖頻率大于編碼器的脈沖輸出頻率。
- 檢查信號(hào)線是否過長(zhǎng),是否使用屏蔽雙絞線,按要求做好接地,并采取必要抗干擾措施。
4.4空閑的編碼器信號(hào)線該如何處理
在實(shí)際的應(yīng)用中,可能會(huì)遇到不需要或者模塊不支持的信號(hào)線,例如:
- 對(duì)于帶零位信號(hào)的AB正交編碼器(A、B、N),模塊不支持N相輸入或者不需要Z信號(hào)。
- 對(duì)于差分輸出信號(hào)(A、/A,B、/B,N、/N),模塊不支持反向信號(hào)(/A,/B,/N)的輸入。
- 對(duì)于這些信號(hào)線,不需要特殊的處理,可以直接放棄不用!
4.5增量信號(hào)多重評(píng)估能否提高計(jì)數(shù)頻率
對(duì)于增量信號(hào),可以組態(tài)多重評(píng)估模式,包括雙重評(píng)估和四重評(píng)估。四重評(píng)估是指同時(shí)對(duì)信號(hào) A和B 的正跳沿和負(fù)跳沿進(jìn)行判斷,進(jìn)而得到計(jì)數(shù)值,如圖4-1所示。對(duì)于四重評(píng)估的模式,因?yàn)閷?duì)一個(gè)脈沖進(jìn)行了四倍的處理(四次評(píng)估),所以讀到的計(jì)數(shù)值是實(shí)際輸入脈沖數(shù)的四倍,通過對(duì)信號(hào)的多重評(píng)估可以提高測(cè)量的分辨率。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dc-dcyndgx.png)
圖4-1 四重評(píng)估原理圖
通過以上對(duì)增量信號(hào)多重評(píng)估原理的分析可以看出,多重評(píng)估只是在原計(jì)數(shù)脈沖的基礎(chǔ)上對(duì)計(jì)數(shù)值作了倍頻處理,而實(shí)際上對(duì)實(shí)際輸入脈沖頻率沒有影響,所以也不會(huì)提高模塊的大計(jì)數(shù)頻率。例如,F(xiàn)M350-2的大計(jì)數(shù)頻率為10kHz,那么即使配置為四重評(píng)估的模式,其大的計(jì)數(shù)頻率還是10kHz
光電編碼器是集光、機(jī)、電技術(shù)于一體的數(shù)字化傳感器,主要利用光柵衍射的原理來實(shí)現(xiàn)位移——數(shù)字變換,通過光電轉(zhuǎn)換將輸出軸上的機(jī)械幾何位移量轉(zhuǎn)換成脈沖或數(shù)字量的傳感器。典型的光電編碼器由碼盤、檢測(cè)光柵、光電轉(zhuǎn)換電路(包括光源、光敏器件、信號(hào)轉(zhuǎn)換電路)、機(jī)械部件等組成。光電編碼器具有結(jié)構(gòu)簡(jiǎn)單、精度高、壽命長(zhǎng)等優(yōu)點(diǎn),廣泛應(yīng)用于精密定位、速度、長(zhǎng)度、加速度、振動(dòng)等方面。
這里我們主要介紹SIMATIC S7系列高速計(jì)數(shù)產(chǎn)品普遍支持的增量式編碼器和式編碼器。
1.2增量式編碼器
增量式編碼器提供了一種對(duì)連續(xù)位移量離散化、增量化以及位移變化(速度)的傳感方法。增量式編碼器的特點(diǎn)是每產(chǎn)生一個(gè)輸出脈沖信號(hào)就對(duì)應(yīng)于一個(gè)增量位移,它能夠產(chǎn)生與位移增量等值的脈沖信號(hào)。增量式編碼器測(cè)量的是相對(duì)于某個(gè)基準(zhǔn)點(diǎn)的相對(duì)位置增量,而不能夠直接檢測(cè)出位置信息。
如圖1-1 所示,增量式編碼器主要由光源、碼盤、檢測(cè)光柵、光電檢測(cè)器件和轉(zhuǎn)換電路組成。在碼盤上刻有節(jié)距相等的輻射狀透光縫隙,相鄰兩個(gè)透光縫隙之間代表一個(gè)增量周期。檢測(cè)光柵上刻有A、B 兩組與碼盤相對(duì)應(yīng)的透光縫隙,用以通過或阻擋光源和光電檢測(cè)器件之間的光線,它們的節(jié)距和碼盤上的節(jié)距相等,并且兩組透光縫隙錯(cuò)開1/4 節(jié)距,使得光電檢測(cè)器件輸出的信號(hào)在相位上相差 90°。當(dāng)碼盤隨著被測(cè)轉(zhuǎn)軸轉(zhuǎn)動(dòng)時(shí),檢測(cè)光柵不動(dòng),光線透過碼盤和檢測(cè)光柵上的透過縫隙照射到光電檢測(cè)器件上,光電檢測(cè)器件就輸出兩組相位相差 90°的近似于正弦波的電信號(hào),電信號(hào)經(jīng)過轉(zhuǎn)換電路的信號(hào)處理,就可以得到被測(cè)軸的轉(zhuǎn)角或速度信息。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-jm-jm3mjm1.png)
圖1-1 增量式編碼器原理圖
一般來說,增量式光電編碼器輸出 A、B 兩相相位差為 90°的脈沖信號(hào)(即所謂的兩相正交輸出信號(hào)),根據(jù) A、B 兩相的先后位置關(guān)系,可以方便地判斷出編碼器的旋轉(zhuǎn)方向。另外,碼盤一般還提供用作參考零位的 N 相標(biāo)志(指示)脈沖信號(hào),碼盤每旋轉(zhuǎn)一周,會(huì)發(fā)出一個(gè)零位標(biāo)志信號(hào)。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dy-dy0mjy4.png)
圖1-2 增量式編碼器輸出信號(hào)
1.3式編碼器
式編碼器的原理及組成部件與增量式編碼器基本相同,與增量式編碼器不同的是,式編碼器用不同的數(shù)碼來指示每個(gè)不同的增量位置,它是一種直接輸出數(shù)字量的傳感器。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-jm-jm5mzgx.png)
圖1-3式編碼器原理圖
如圖1-3所示,式編碼器的圓形碼盤上沿徑向有若干同心碼道,每條碼道上由透光和不透光的扇形區(qū)相間組成,相鄰碼道的扇區(qū)數(shù)目是雙倍關(guān)系,碼盤上的碼道數(shù)就是它的二進(jìn)制數(shù)碼的位數(shù)。在碼盤的一側(cè)是光源,另一側(cè)對(duì)應(yīng)每一碼道有一光敏元件。當(dāng)碼盤處于不同位置時(shí),各光敏元件根據(jù)受光照與否轉(zhuǎn)換出相應(yīng)的電平信號(hào),形成二進(jìn)制數(shù)。顯然,碼道越多,分辨率就越高,對(duì)于一個(gè)具有 n 位二進(jìn)制分辨率的編碼器,其碼盤必須有 n 條碼道。
根據(jù)編碼方式的不同,式編碼器的兩種類型碼盤(二進(jìn)制碼盤和格雷碼碼盤),如圖1-4 所示。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dy-dy1mte1.png)
式編碼器的特點(diǎn)是不需要計(jì)數(shù)器,在轉(zhuǎn)軸的任意位置都可讀出一個(gè)固定的與位置相對(duì)應(yīng)的數(shù)字碼,即直接讀出角度坐標(biāo)的值。另外,相對(duì)于增量式編碼器,式編碼器不存在累積誤差,并且當(dāng)電源切除后位置信息也不會(huì)丟失。
2 編碼器輸出信號(hào)類型
一般情況下,從編碼器的光電檢測(cè)器件獲取的信號(hào)電平較低,波形也不規(guī)則,不能直接用于控制、信號(hào)處理和遠(yuǎn)距離傳輸,所以在編碼器內(nèi)還需要對(duì)信號(hào)進(jìn)行放大、整形等處理。經(jīng)過處理的輸出信號(hào)一般近似于正弦波或矩形波,因?yàn)榫匦尾ㄝ敵鲂盘?hào)容易進(jìn)行數(shù)字處理,所以在控制系統(tǒng)中應(yīng)用比較廣泛。
增量式光電編碼器的信號(hào)輸出有集電極開路輸出、電壓輸出、線驅(qū)動(dòng)輸出和推挽式輸出等多種信號(hào)形式。
2.1集電極開路輸出
集電極開路輸出是以輸出電路的晶體管發(fā)射極作為公共端,并且集電極懸空的輸出電路。根據(jù)使用的晶體管類型不同,可以分為NPN集電極開路輸出(也稱作漏型輸出,當(dāng)邏輯 1 時(shí)輸出電壓為0V,如圖2-1所示)和PNP集電極開路輸出(也稱作源型輸出,當(dāng)邏輯 1 時(shí),輸出電壓為電源電壓,如圖2-2所示)兩種形式。在編碼器供電電壓和信號(hào)接受裝置的電壓不*的情況下可以使用這種類型的輸出電路。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dy-dyyodgz.png)
圖2-1 NPN 集電極開路輸出
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dy-dy1odm1.png)
圖2-2 PNP集電極開路輸出
對(duì)于PNP型的集電極開路輸出的編碼器信號(hào),可以接入到漏型輸入的模塊中,具體的接線原理如圖2-3所示。
注意:PNP型的集電極開路輸出的編碼器信號(hào)不能直接接入源型輸入的模塊中。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dy-dy0oduy.png)
圖2-3 PNP型輸出的接線原理
對(duì)于NPN型的集電極開路輸出的編碼器信號(hào),可以接入到源型輸入的模塊中,具體的接線原理如圖2-4所示。
注意:NPN型的集電極開路輸出的編碼器信號(hào)不能直接接入漏型輸入的模塊中。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-jk-jk0njex.png)
圖2-4 NPN型輸出的接線原理
2.2 電壓輸出型
電壓輸出是在集電極開路輸出電路的基礎(chǔ)上,在電源和集電極之間接了一個(gè)上拉電阻,這樣就使得集電極和電源之間能有了一個(gè)穩(wěn)定的電壓狀態(tài),如圖2-5。一般在編碼器供電電壓和信號(hào)接受裝置的電壓*的情況下使用這種類型的輸出電路。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-dc-dc1nda2.png)
圖2-5 電壓輸出型
2.3 推挽式輸出
推挽式輸出方式由兩個(gè)分別為 PNP 型和 NPN 型的三極管組成,如圖2-6所示。當(dāng)其中一個(gè)三極管導(dǎo)通時(shí),另外一個(gè)三極管則關(guān)斷,兩個(gè)輸出晶體管交互進(jìn)行動(dòng)作。
這種輸出形式具有高輸入阻抗和低輸出阻抗,因此在低阻抗情況下它也可以提供大范圍的電源。由于輸入、輸出信號(hào)相位相同且頻率范圍寬,因此它還適用于長(zhǎng)距離傳輸。
推挽式輸出電路可以直接與 NPN 和 PNP 集電極開路輸入的電路連接,即可以接入源型或漏型輸入的模塊中。
![](https://www.siemensplc.com/wp-content/uploads/2019/01/http-cache-automation-siemens-com-dnl-zm-zmzmda5.png)
圖2-6 推挽式輸出