在西門子PLC中,使用區域性變數定義變數時有什麼方式來判斷呢。我老是弄混,有能說的容易懂得先謝了

2022-09-03 01:36:38 字數 4244 閱讀 3233

1樓:相見不如思念

區域性變數裡的是臨時資料,一般fc裡用的比較多,開啟fc,在頂端會讓你定義in,in-out,out等等,比如你有4個電機,操作都一樣,那麼你要寫一個電機啟停的程式,在這個程式裡你定義了啟動,停止,執行輸出,然後對fc用區域性變數程式設計,編好後在ob裡呼叫,要啟動第一個電機,呼叫fc1,在fc1的輸入輸出把第一個電機的啟動停止執行輸出的實際地址寫在相應的引腳,如i0.0,i0.1,q0.

0等,要啟動其它的電機用類似呼叫,那麼實際上你的記憶體裡有三個區域性變數的地址,你在第一次呼叫放第一個電機的值,給到輸出,在第二個電機被呼叫時,它的地址裡放的又是第二個電機的相關資料,可以看到它裡面的資料一直在變,但由於程式在迴圈執行所以並不影響程式的正確執行。而這些區域性變數可以看到只在fc1裡有用

全域性變數,比如你在符號表裡定義一個mw0,那麼你在程式裡的任何一個塊裡都可以使用,並且比如你在fc1裡給mw賦值一個數,那麼當fc1被呼叫時,其它地方的mw0裡的值也會跟著變為最新被給定的值

希望你能看得懂

2樓:匿名使用者

區域性儲存器和變數儲存器很相似,但只有一處區別。變數儲存器是全域性有效的,而區域性儲存器只在區域性有效。全域性是指同一個儲存器可以被任何程式存取(包括主程式、子程式和中斷服務程式)。

區域性是指儲存器區和特定的程式相關聯。s7--200給主程式分配64個區域性儲存器;給每一級子程式巢狀分配64個位元組區域性儲存器;同樣給中斷服務程式分配64個位元組區域性儲存器。

子程式或者中斷服務程式不能訪問分配給主程式的區域性儲存器。子程式不能訪問分配給主程式、中斷服務程式或者其它子程式的區域性儲存器。同樣的,中斷服務程式也不能訪問分配給主程式或子程式的區域性儲存器。

s7--200 plc根據需要分配區域性儲存器。也就是說,當主程式執行時,分配給子程式或中斷服務程式的區域性儲存器是不存在的。當發生中斷或者呼叫一個子程式時,需要分配區域性儲存器。

新的區域性儲存器地址可能會覆蓋另一個子程式或中斷服務程式的區域性儲存器地址。

區域性儲存器在分配時plc不進行初始化,初值可能是任意的。當在子程式呼叫中傳遞引數時,在被呼叫子程式的區域性儲存器中,由cpu替換其被傳遞的引數的值。區域性儲存器在引數傳遞過程中不傳遞值,在分配時不被初始化,可能包含任意數值。

你的提問不是很懂,反正你看看上面就能解決

3樓:吃瓜添味

「使用區域性變數定義變數時有什麼方式來判斷呢? 」這是你的問題??

4樓:納美剋星_人民

fc,fb內部定義的變數,使用時前面帶#的就是區域性變數了。

西門子plc區域性變數是用來做什麼

5樓:ws無名小卒

使用區域性變數有兩種原因:

1.您希望建立不引用絕對地址或全域性符號的可移動子程式。

2.您希望使用臨時變數(說明為temp的區域性變數)進行計算,以便釋放plc記憶體。

如果以上說明對您的情形不適用,您無須使用區域性變數;您可以在符號表(simatic)或全域性變數表(iec)中定義符號數值,將所有的符號數值定義為全域性變數。

6樓:匿名使用者

區域性變數是說應用於程式內部的變數 也只在程式內部作呼叫

關於西門子s7-200plc 子程式區域性變數中的out變數和in_out變數區別的例子,我是搞不清 20

7樓:匿名使用者

in 只能是輸入

temp 中間變數(中間運算存放的值)

out只是輸出(很重要)

in-out可以做輸入也可以做輸出

以上的是區域性變數的哦,

這個就是他們的區別

打個out的比方:

#0.0 區域性變數in , #0.1 區域性變數out #0.2 區域性變數in-out

ld #0.0 (常開指令)

= #0.1 (輸出指令)

= #0.2 (輸出指令)

按上面的例子把這些 #0.0 ,#0.1,#0.2 位置更換一下,

更換1ld #0.1 (常開指令) 報錯 因為#0.1 區域性變數out,

= #0.0 (輸出指令) 報錯 因為#0.0 區域性變數in,不能它賦值

= #0.2 (輸出指令)

這時候程式 第1 和 2列 應該是報錯的,我記得是這樣的,

更換2ld #0.2 (常開指令) 沒有錯誤 因為#0.2是in-out變數

= #0.0 (輸出指令) 報錯 因為#0.0 區域性變數in,不能它賦值

= #0.1 (輸出指令)

這時候程式 第2列 應該是報錯的,我記得是這樣的,

你可以按照這個做法多試試幾下,你就更明白了!

我軟體沒有安裝沒有辦法給你程式圖

西門子300plc中怎麼定義變數型別

8樓:

你在定義塊的時候,在宣告欄是可以宣告變數名稱、型別等的。

在西門子plc中,變數、中間儲存m、資料塊db使用時有什麼不同??

9樓:匿名使用者

舉個例子,copy 1+2+4=7 變數就是 1 2 4 7 但是你計算的時候肯定是先算1+2=3 然後3+4=7,這個3就相當於中間儲存m, 現在讓你把這些數字都放在一張紙上,這張紙就相當於db

10樓:過往的美好

變數:可以自定義,也可以指定具體的地址。可以是bit byte word 等等

中間儲存m:就是儲存邏版輯運算結果的權m

資料塊db:資料塊可以包含很多的資料.

plc: 可程式設計邏輯控制器,它採用一類可程式設計的儲存器,用於其內部儲存程式,執行邏輯運算、順序控制、定時、計數與算術操作等面向使用者的指令,並通過數字或模擬式輸入/輸出控制各種型別的機械或生產過程。

11樓:匿名使用者

變數是外部採集過來的,外部是開就是開,關就是關,m時plc內部計算用的,突然斷電資料會丟失,db的不會它有儲存區。

西門子plc中為什麼每個fb塊都有一個db,還有fb塊藉口處有stat,這是幹嘛用的

12樓:弟弟跑有好吃的

stat是一個陣列,用來定義資料型別。

1、西門子300的fb在使用時的必須加db塊的,因為fb裡的運算是不帶儲存空間的,必須外加資料中轉儲存區。這個被配給fb的db塊叫它們的背景資料塊。而被配給這個fb的db也同時是指定給這個fb,不能用給其他的。

2、、但是一個fb可以有幾個db,但一個背景資料塊db只能指定給一個fb。

3、 那個stat是一個陣列。它裡面可定義一種資料型別或者幾種資料型別。用法就看你的程式如何編寫的了。具體陣列的運用你可以搜尋軟體的幫助。

4、西門子plc陣列的使用方法是:新建一個db塊,建塊時選擇"shared db",並在db_var變數的int中直接修改變數的屬性即可。

13樓:匿名使用者

西門子300的fb在使用時的必須加db塊的,因為fb裡的運算是不帶儲存空間的,必須外加資料中轉儲存區。這個被配給fb的db塊叫它們的背景資料塊。而被配給這個fb的db也同時是指定給這個fb,不能用給其他的。

但是一個fb可以有幾個db,但一個背景資料塊db只能指定給一個fb。

把線上程式上載就會丟掉符號,可以使用線上/線下對比也就是compare online/offline,這樣的話就可以知道別人改了**然後線下做同樣的修改,和線上改成一致的可以上線監控了。

14樓:匿名使用者

因為fb需要系統為其分配儲存空間,而對於西門子來說,這個分配儲存空間的責任由使用者負責,在其他廠牌的plc中,這個分配空間的責任由系統承擔。

stat變數是靜態變數,因為在fb中,使用temp臨時變數,在每次fb呼叫完畢後即被系統拋棄,如果需要儲存fb執行資料的話,需要使用stat變數進行儲存。

15樓:匿名使用者

fb塊不一定非得要配一個db。

stat是靜態變數,是fb的內部變數,可自定義型別。

當自定義stat型別為fb時,可實現多重背景資料塊訪問,此時該fb可以不要db塊。

16樓:繁華散_歸塵土

我記得sata應該是靜態變數

西門子plc與觸控式螢幕如何通訊,西門子PLC與觸控式螢幕如何通訊

採用無線rs485 通訊產品實現觸控式螢幕 人機介面及 plc 之間的無線通訊,需要遵循以下原 則 由此可見,適合於無線通訊的方式有三種 1 採用自由串列埠協議,需要使用者熟悉串列埠通訊,會程式設計。2 採用ppi 協議,不需要程式設計,只需要簡單組態。但是對無線資料終端有特殊要求,普通產品無法滿足...

西門子PLC中LD是什麼,西門子PLC是什麼?

ld load 為取指令,表示每一行程式中第一個與左邊母線直接相連的常開觸點。在西門子s7 200系列plc梯形圖中,cd為計數脈衝輸入端,ld為裝載訊號輸入端,pv為脈衝設定值輸入端。當裝載訊號輸入端ld訊號為1時,其計數器的設定值pv被裝入計數器的當前值暫存器,此時當前值為pv。只有裝載訊號輸入...

plc是西門子好還是三菱好,西門子PLC和三菱PLC學哪個好

西門子plc和三菱plc的主要區別就是,西門子一直主張使用結構化程式設計,就是一臺裝置的程式由若干個子程式組成,每個子程式負責一個功能,需要的時候再通過主程式呼叫,這樣有很多好處,比如查詢故障,除錯等都非常方便,而三菱的所有的程式都在一個主程式裡 至少fx系列的是這樣 如果程式較長,除錯起來很麻煩,...