Ⅰ PLC子程序的調用是怎麼回事
結構化編程。常用的功能寫個子程序,可以被主程序或其他子程序調用。類似於高級語言中的函數或方法調用。如C語言,主函數為main(),其他函數可以被他調用,同時函數之間也可以互相調用。調用時用實參賦給形參(如果有參數傳遞的話),PLC也是這樣。以西門子S7-300為例。主程序是OB1,常用或重復的功能你可以寫成FC(功能)或FB(功能塊),放在OB1里重復調用,通過傳遞不同的實參給形參來完成不同的程序執行,FC和FB也可以調用其他FC和FB,即嵌套調用,但嵌套層數有限制。這樣做是為了使程序結構合理,易讀易用,減輕編程工作的重復工作。
Ⅱ 在FC里寫了一些子程序 想在OB1中按程序進行控制 請問在OB1中怎麼添加FC
打開ob1,然後在左側的fc塊里找到你做的fc,然後雙擊一下,就進ob1裡面了。
Ⅲ 什麼情況下,OB1裡面直接調用DB1等數據塊 ,不知道在主程序裡面調用數據塊啥意思
ob1是主程序,db1是數據塊,可以把想設計參弊冊賀數寫在姿御DB1里,會分配一個地址,在ob1裡面租派用,西門子300程序就是這樣設計
Ⅳ 主程序調用子程序編程指令是什麼
主程序調用子程序編程指令是:右擊——插入——OB,然後填上OB100,OB由系統調用,並非由用戶調用。
一般會有輸入參數並有返回值,提供對過程的封裝和細節的隱藏。這些代碼通常被集成為軟體庫。函數在面向過程的語言中已經出現。是結構和類的前身。本身就是對具有相關性語句的歸類和對某過程的抽象。
轉子指令和返回指令:
在子程序的調用與返回過程中,子程序的入口地址是指子程序第一條指令的地址。用於調用子程序、控製程序的執行從主程序轉向子程序的指令稱為專注指令(子程序調用指令、過程調用指令)。為了正確調用子程序,必須在轉子指令中給出子程序的入口地址。
主程序中轉子指令的下一條指令的地址稱為斷點,斷點是子程序返回主程序的返回地址,從子程序返回主程序的指令稱為返回指令。為了在執行返回指令時能夠正確地返回主程序,轉子指令應具有保護斷點的功能。
執行轉子指令時保護斷點的方式有多種,常用的有:將斷點保存到子程序第一條指令的前一個字單元;將斷點保存到某一約定的寄存器中;將斷點壓入堆棧。
Ⅳ 如何編程使用OB組織塊
簡單的控製程序可以只用OB塊編程。
若程序功能較多、控制對象較多,應遵循西門子(也是IEC)的建議採用結構化編程。
應該採用FC、FB,就採用相應的功能;
S7-300/400PLC程序採用結構化程序,把程序分成多個模塊,各模塊完成相應的功能。結合起來就能實現一個復雜的控制系統。就像高級語言一樣,用子程序實現特定的功能,再通過主程序調用各子程序,從而能實現復雜的程序。
在S7-300/400PLC中,寫在OB1塊里的程序就是主程序,子程序寫在功能(FC)、功能塊(FB)。各個OB相當於主程序的不同分段,負責調用其他功能塊。如果程序簡單只需OB就可以實現。
系統功能塊(SFB)和系統功能(SFC)也是相當於子程序,只不過SFB和SFC是集成在S7
CPU中的功能塊,用戶能直接調用不需自已寫程序。
SFC與FC不具有儲存功能,FB和SFB具有儲存功能
。
IU和R必須是在同一段電路中;IU和R中已知任意的兩個量
Ⅵ 求西門子的子程序調用的編程實例,另外還想問一下子程序是和主程序在同一個程序嗎。
子程序和功能塊最終都是要在主程序的調用下起作用的
主程序相當於是一間房子
而子程序就相當於是房子中的桌子
主程序
程序主體(稱為
OB1),在其中放置控制應用程序的指令。 主程序中的指令按順序執行,每個 CPU 掃描周期執行一次。
子常式
子常式是位於單獨程序塊的可選指令集,只在從主程序、中斷常式或另一子常式調用時執行。
中斷常式
中斷常式是位於單獨程序塊的可選指令集,只在發生中斷事件時執行。
STEP7-Micro/WINSMART 提供了三個程序編輯器,並通過在程序編輯器窗口為每個 POU 提供單獨的選項卡來組織程序。 主程序 OB1
始終是第一個選項卡,然後是可能已創建的任何子常式或中斷。
子常式
要重復執行某種功能時,子常式是非常有用的。 可在子常式中編寫一次邏輯,然後在主程序中根據需要多次調用子常式。 這樣做有若干優點:
您的總體代碼大小減小。
與在主程序中多次執行相同代碼相比,掃描時間也會減少,因為在主程序中,不管代碼執行與否,每個掃描周期都會自動評估代碼。
可以有條件地調用子常式,且在掃描過程中不被調用時不對子常式進行評估。
子常式容易移植;您可以單獨挑出一個功能,並將其復制至其它程序中,而無須進行修改或只進行少量修改。
Ⅶ 西門子PLC300 在OB1中調用FB1
將DB1刪出,然後再FB1上方填寫DB1重新生成一個DB塊就可以了。
新生成的DB1塊是背景數據塊,FB1的相關變數會自動映射到背景DB中去。
DB1建立後 不能修改屬性啊
要想改屬性將DB1刪出重新建立DB塊,選擇instance DB類型 並指定FB1 也可以解決上面的問題。
Ⅷ 數控車床主程序和子程序是怎麼調用的例如我想加工一個工件然後再把它切斷後,再做一個怎麼調用子程序
子程序調用M98Oxxxx子程序號
子程序調用格式M98PXXXX XXXX前者為調用次數後者為子程序號。例;
M98P51002意思是調用子程序O1002,5次。
M99返回主程序M99不必在單獨程序段內指令,例;X100.Z100.M99;
你所說的程序為:
T0200M09用2號刀
M04S500
G00X52.Z30.假設棒料直徑為50mm,前段長為25mm
G01X-1.F0.15
G0X52.
M98P5 1001調用子程序5次
G00X100.Z20.
M05M09
M30
O1001子程序
G00W-30.
G01X-1.F0.15
G00X52.
M99
Ⅸ 博途中scl語言如何使用ob1中函數塊
SCL語言是西門子Simatic語言(Siemens Simatic Language)的簡稱,它是一種用於編程西門子PLC(Programmable Logic Controller)的語言。在SCL語言中,可以使用OB1函數塊來實現指令控制。OB1函數塊是一種以OB開頭的結構化程序塊,它是西門子PLC編程中使用最多的特殊指令。OB1函數塊由三部分組成,即指令頭(HEAD)、指令體(BODY)和指令尾(TAIL)。
指令頭由OB1函數塊的序號、名稱、參數和描述組成。指令頭的具體內容受PLC控制器的影響,它可以指定OB1函數塊的序號、函數塊的名稱或參數,也可以是其他描述信息。
指令體部分由一系列的指令構成,這些指令定義兆瞎棗了OB1函數塊所要完成的任務。它包括一些常用的指令,如IF、ELSE、THEN等,還有一些特殊指令,如JMP等,它們可以根據所處理的任務指定函數塊的邏輯和流程。
指令尾部分是OB1函數塊的結尾,它通常由一個END指令組成,用於指示OB1函數塊的結束。
OB1函數塊可以用於實現復族拆雜的程序控制,並且在SCL語言中也可以使用它來實現指令控制。因此,要使用OB1函數塊,只需要在SCL語言神陪中定義一個OB1函數塊,然後使用它即可實現指令控制。
Ⅹ 怎樣調用OB1塊
OB1不需要調用,所有的OB都不需要調用,由PLC的操作系統自行調用,您只需要下載OB塊就可以了。