1. 西門子PLC如何在主程序,寫入調用子程序的命令
個人感覺你說的第二種比較好,比較可靠。(如果你用第一種情況,電腦死機了怎麼辦??我們單位的電腦裝上後反映就比較遲鈍)
還有NETR是通過指定埠從網路讀取信息(最多16個位元組){結合你的情況就是從PC向PLC讀取信息}
還有NETW是通過指定埠向網路寫信息(最多16個位元組){結合你的情況就是從PLC向PC發送信息}
具體方法:
選擇菜單命令工具(T) > 指令向導叄?緩笱≡?NETR/NETW;
1 指定您需要的網路操作數目
2 指定埠號和子程序名稱
3 指定網路操作
4 分配 V 存儲區
5 生成代碼
為了便於進行連接在網路中的 PLC 之間的數據交換,S7-200支持網路讀(NETR)和網路寫(NETW)指令。NETR 指令從遠程 PLC中的指定地址讀取配置好的一定數量的數據。NETW 指令向遠程PLC中的指定地址寫入配置好的一定數量的數據。NETR
和 NETW 指令操作由數據表中的前七個位元組控制。表中的一個數值是讀取/寫入數據長度,可以規定 1 至 16 個位元組。因此數據表最大可達 23 個位元組。
注釋:在使用 HSC 向導之前,程序必須被編譯,且處於符號編址模式。如果您尚未編譯程序,向導在 HSC 配置過程開始時會提示您編譯程序。
向導將向您詢問初始化選項,然後為指定配置生成程序代碼和數據塊代碼。從第一個屏幕選擇NETR/NETW後,向導向您詢問下列信息:
步驟 1 指定您需要的網路操作數目
注釋:如果項目包含使用 STEP 7 Micro/WIN 3.2 版建立的現有 NETR/ NETW 配置,您必須在繼續執行步驟 1 之前選擇編輯其中一個現有配置或建立一個新配置。
可使用 NETR/NETW 指令向導,簡化網路操作配置。向導將向您詢問初始化選項,並根據您的選擇生成完整的配置。向導允許您配置多達 24 項獨立的網路操作,並生成代碼協調這些操作。
步驟 2 指定埠號和子程序名稱
注釋:項目可能已經包含一個 NETR/NETW 向導配置。所有以前建立的配置均被自動載入向導。向導會提示您完成以下兩個步驟之一:
?選擇編輯現有配置,方法是點擊「下一步>」。
?選擇從項目中刪除現有配置,方法是選擇「刪除」復選框,並點擊「完成」。
如果不存在以前的配置,向導會詢問以下信息:
1. PLC 必須被設為 PPI 主站模式才能進行通信。您要指定通信將通過哪一個 PLC 埠進行。
2. 向導建立一個用於執行具體網路操作的參數化子程序。向導還為子程序指定一個默認名稱。您可以編輯默認名稱。
步驟 3 指定網路操作
對於每項網路操作,您需要提供下列信息:
1. 指定操作是 NETR 還是 NETW。
2. 指定從遠程 PLC(NETR)讀取的數據位元組數或向遠程 PLC(NETW)寫入的數據位元組數。
3. 指定您希望用於通信的遠程 PLC 網路地址。
4. 如果您在配置NETR,指定以下內容:
- 數據存儲在本地 PLC 中的位置。有效操作數:VB、IB、QB、MB、LB。
- 從遠程 PLC 讀取數據的位置。有效操作數:VB、IB、QB、MB、LB。
5. 如果您在配置 NETW,指定以下內容:
- 數據存儲在本地 PLC 中的位置。有效操作數:VB、IB、QB、MB、LB。
- 向遠程 PLC 寫入數據的位置。有效操作數:VB、IB、QB、MB、LB。
步驟 4 分配 V 存儲區
對於您配置的每一項網路操作,要求有 12 個位元組的 V 存儲區。您指定可放置配置的 V 存儲區起始地址。向導會自動為您建議一個地址,但您可以編輯該地址。請注意,如果您使用重疊地址,向導在顯示一則警告後,允許您進入下一步。
注釋: 在 NETR 操作中,請確認將用於存儲數據的變數地址沒有與分配給向導配置的存儲區地址重疊。
步驟 5 生成程序代碼
回答這些詢問後,點擊「完成」,S7-200 指令向導將為您指定的網路操作生成代碼。由向導建立的子程序成為項目的一部分。要在程序中使能網路通信,需要在主程序塊中調用執行子程序(NET_EXE)。每次掃描周期時,使用 SM0.0 調用該子程序。這樣會啟動配置網路操作執行。為每項網路操作建立的數據處理子程序會在適當時間被自動調用。
2. 西門子如何編寫子程序 步驟如下
1、打開NETR,NETR是通過指定埠從網路讀取信息(最多16個位元組){結合你的情況就是從PC向PLC讀取信息}。
2、具體方法:選擇菜單命令工具(T) > 指令向導NETR/NETW。
3、指定您需要的網路操作數目。
4、指定埠號和子程序名稱。
5、指定網路操作。
6、分配 V 存儲區。
7、生成代碼。
8、為了便於進行連接在網路中的 PLC 之間的數據交換,S7-200支持網路讀(NETR)和網路寫(NETW)指令。
9、NETR 指令從遠程 PLC中的指定地址讀取配置好的一定數量的數據。
10、NETW 指令操作由數據表中的前七個位元組控制。
11、表中的一個數值是讀取/寫入數據長度,可以規定 1 至 16 個位元組。因此數據表最大可達 23 個位元組。
3. 西門子Plc如何設置 調用主程序 子程序 功能塊與主程序的區別
主程序是整體的輸入輸出點,分為還幾個塊,每一個塊就可以對應一個子程序。
4. 西門子PLC編程只用主程序OB編程,不用塊FB和功能FC,可以嗎
只用OB可以的,只能做簡單編程,但不推薦,像你介紹下FB和FC
FC其實就是子程序,就不多介紹了。
重點和你推薦一下多重背景FB:FB就像是VB,C++裡面的對象,先定義然後實例化。
舉個例子,假設你的生產線上有20個相同的傳送工位,那麼我們只要定義一個傳送工位FB,然後實例化20次,命名為ST1,ST2。。。ST20,然後將每一個實例化的FB的外部介面和輸出聯好(感測器,信號輸出,上下位介面),20個工位編程就完成了。
熟練運用多重背景FB的時候,就能享受結構化編程的樂趣了。
5. 該如何學習西門子的PLC子程序庫 如何利用西門子的子程序庫來搭建自己的主程序
子程序庫,其實就是自己定義的子程序,可以當做西門子的指令一樣使用。當然在庫文件中使用的都是符號地址,不能出現實際的V地址。舉個例子來說:西門子中有沒有求模的指令?
我曾經做了一個單字數據求模的指令,現寫在這里大家共享下,子程序名定義為MOD_I,具體STL程序如下(注意都是符號地址,數據類型為WORD):
LD SM0.0
MOVW #IN_WORD1:LW0, #DATA_TEMP1:LW6
/I #IN_WORD2:LW2, #DATA_TEMP1:LW6
MOVW #IN_WORD2:LW2, #DATA_TEMP2:LW8
*I #DATA_TEMP1:LW6, #DATA_TEMP2:LW8
MOVW #IN_WORD1:LW0, #MOD_OUT:LW4
-I #DATA_TEMP2:LW8, #MOD_OUT:LW4
你可以轉換成LAD程序,看下就明白了。
6. 求西門子的子程序調用的編程實例,另外還想問一下子程序是和主程序在同一個程序嗎。
子程序和功能塊最終都是要在主程序的調用下起作用的
主程序相當於是一間房子
而子程序就相當於是房子中的桌子
主程序
程序主體(稱為
OB1),在其中放置控制應用程序的指令。 主程序中的指令按順序執行,每個 CPU 掃描周期執行一次。
子常式
子常式是位於單獨程序塊的可選指令集,只在從主程序、中斷常式或另一子常式調用時執行。
中斷常式
中斷常式是位於單獨程序塊的可選指令集,只在發生中斷事件時執行。
STEP7-Micro/WINSMART 提供了三個程序編輯器,並通過在程序編輯器窗口為每個 POU 提供單獨的選項卡來組織程序。 主程序 OB1
始終是第一個選項卡,然後是可能已創建的任何子常式或中斷。
子常式
要重復執行某種功能時,子常式是非常有用的。 可在子常式中編寫一次邏輯,然後在主程序中根據需要多次調用子常式。 這樣做有若干優點:
您的總體代碼大小減小。
與在主程序中多次執行相同代碼相比,掃描時間也會減少,因為在主程序中,不管代碼執行與否,每個掃描周期都會自動評估代碼。
可以有條件地調用子常式,且在掃描過程中不被調用時不對子常式進行評估。
子常式容易移植;您可以單獨挑出一個功能,並將其復制至其它程序中,而無須進行修改或只進行少量修改。
7. 西門子PLC編程的步驟是:硬體組態、編寫( )、編寫程序
S7-200不需要硬體組態,自動識別
S7-200SMART需要先做硬體組態
S7-300/400需要先做硬體組態,然後再編程
S7-1200/1500需要先做硬體組態,然後再編程
8. 西門子plc s7 300,能否主程序寫在plc內,子程序寫在存儲卡里,通過換卡來切換程序
貌似是不行,S7-300的程序是整個保存在MMC卡上的。你可以試試兩個卡都寫完整的程序,通過換卡來切換程序