山東西門(mén)子PLC模塊代理
西門(mén)子S7-300/400的編程語(yǔ)言數(shù)據(jù)類型復(fù)合數(shù)據(jù)類型
復(fù)合數(shù)據(jù)類型是通過(guò)基本數(shù)據(jù)類型組合成的。復(fù)合數(shù)據(jù)類型的定義超過(guò)32位或是由其他數(shù)據(jù)類型組成的數(shù)據(jù)。復(fù)合數(shù)據(jù)類型要預(yù)先定義,其變量只能在全局?jǐn)?shù)據(jù)塊中聲明,可以作為參數(shù)或邏輯塊的局部變量。
①數(shù)組( ARRAY)。將一組同類型的數(shù)據(jù)組合在一起,形成一個(gè)單元。
②結(jié)構(gòu)( STRUCT)。將一組不同類型的數(shù)據(jù)組合在一起,形成一個(gè)單元。
③字符串( STRING)。包含了多254個(gè)字符(CHAR)的一維數(shù)組。
④時(shí)間和日期( DATE_AND_TIME)。用于存儲(chǔ)年、月、日、小時(shí)、分鐘、秒、毫秒和星期,占用8個(gè)字節(jié),用BCD格式保存,星期天的代碼為1,星期一到星期六的代碼為2~7。
⑤用戶定義的數(shù)據(jù)類型UDT( User-Defind Data Types)。由用戶將基本數(shù)據(jù)類型和復(fù)合數(shù)據(jù)類型組合在一起,形成新的數(shù)據(jù)類型。
可以在數(shù)據(jù)塊DB和變量聲明表中定義復(fù)合數(shù)據(jù)類型。
在S7-300/400系列的PLC中,可以用二進(jìn)制數(shù)、十六進(jìn)制數(shù)和BCD碼來(lái)表示數(shù)。
(1)二進(jìn)制數(shù),
二進(jìn)制數(shù)只有0和1兩個(gè)符號(hào),按照逢二進(jìn)一的規(guī)則運(yùn)算。0和1用來(lái)表示開(kāi)關(guān)量(或稱數(shù)字量)的兩種不同狀態(tài),如觸點(diǎn)的斷開(kāi)和接通,線圈的得電和失電等。
假如二進(jìn)制數(shù)的某位為1,表示梯形圖中對(duì)應(yīng)的位編程元件(例如,位存儲(chǔ)器M或輸出過(guò)程映像Q)的線圈“得電”,其常開(kāi)觸點(diǎn)接通,常閉觸點(diǎn)斷開(kāi),稱該編程元件處于1狀態(tài)或ON(接通);如果該位為0,對(duì)應(yīng)編程元件的線圈或觸點(diǎn)的狀態(tài)與上述相反,稱該編程元件處于0狀態(tài)或OFF(斷開(kāi))。在編程手冊(cè)和編程軟件中,位編程元件的1狀態(tài)和0狀態(tài)通常用TRUE和FALSE來(lái)表示。
二進(jìn)制常數(shù)用2#放在前面表示,如2#1111_0110_1001_0001是16位的二進(jìn)制常數(shù)。
(2)十六進(jìn)制數(shù)
十六進(jìn)制數(shù)的每一位都有16種可能出現(xiàn)的數(shù)字,分別是0~9和A~F(對(duì)應(yīng)于十進(jìn)制數(shù)的10~15),按照逢十六進(jìn)一的規(guī)則運(yùn)算,每個(gè)數(shù)字占二進(jìn)制數(shù)的4位。
十六進(jìn)制常數(shù)表示法:
①B#16#、W#16#、DW#16#分別用來(lái)表示十六進(jìn)制(16#)字節(jié)(B#)、字(W#)和雙字(DW#)常數(shù)。
②用字符H表示十六進(jìn)制常數(shù),如W#16#3B可以表示為3BH。
(3) BCD碼
BCD碼就是用二進(jìn)制數(shù)表示十進(jìn)制數(shù),每一位十進(jìn)制數(shù)用4位二進(jìn)制數(shù)來(lái)表示。BCD碼實(shí)際上是十六進(jìn)制數(shù),用4位二進(jìn)制數(shù)表示出16種組合,而BCD碼只用其*個(gè)組合來(lái)表示0~9,其余6種組合( 1010~1111)沒(méi)有使用。例如,十進(jìn)制數(shù)298對(duì)應(yīng)的BCD碼的2進(jìn)制表示為2#0000 0010 1001 1000,也可以表示為W#16#298。
控制一個(gè)任務(wù)或過(guò)程,是通過(guò)在運(yùn)行( RUN)方式下,使主機(jī)循環(huán)掃描并連續(xù)執(zhí)行用戶程序來(lái)實(shí)現(xiàn)的,用戶程序決定了一個(gè)控制系統(tǒng)的功能。程序的編制可以使用編程軟件在計(jì)算機(jī)或其他編程設(shè)備中進(jìn)行(如圖形輸入設(shè)備/編程器等)。
廣義上的PLC程序由三部分構(gòu)成:用戶程序、數(shù)據(jù)塊和參數(shù)塊。
(1)用戶程序
用戶程序是必選項(xiàng)。用戶程序在存儲(chǔ)器空間中也稱為組織塊( OB),它處于高層次,可以管理其他塊,可采用各種語(yǔ)言(如STL、LAD或FBD等)來(lái)編制。不同機(jī)型的CPU,其程序空間容量也不同。用戶程序的結(jié)構(gòu)比較簡(jiǎn)單,一個(gè)完整的用戶控制程序應(yīng)當(dāng)包含一個(gè)主程序(OB1)、若干個(gè)子程序和若干個(gè)中斷程序三大部分。不同的編程設(shè)備,對(duì)各程序塊的安排方法也不同。其程序結(jié)構(gòu)如圖3 -3所示。
圖3-3 PLC程序結(jié)構(gòu)
①主程序(0Bl):是用戶程序的主體。CPU在每個(gè)掃描周期都要執(zhí)行一次主程序指令。
②子程序:是程序的可選部分,只有當(dāng)主程序調(diào)用時(shí),才能夠執(zhí)行。合理使用子程序,可以優(yōu)化程序結(jié)構(gòu),減少掃描時(shí)間。
③中斷程序:是程序的可選部分,只有當(dāng)中斷事件發(fā)生時(shí),才能夠執(zhí)行。中斷程序可在掃描周期的任意點(diǎn)執(zhí)行。
(2)數(shù)據(jù)塊
數(shù)據(jù)塊(DB)為可選部分,它主要存放控制程序運(yùn)行所需要的數(shù)據(jù),在數(shù)據(jù)塊中允許的數(shù)據(jù)類型為:①布爾型、表示編程元件的狀態(tài);②二進(jìn)制、十進(jìn)制或十六進(jìn)制數(shù);③字母、數(shù)字和字符型。
(3)參數(shù)塊
參數(shù)塊也是可選部分,它存放的是CPU的組態(tài)數(shù)據(jù),如果在編程軟件和其他編程工具上未進(jìn)行CPU的組態(tài),則系統(tǒng)以默認(rèn)值進(jìn)行自動(dòng)配置。
組態(tài)( ConFIGU RING)的含義:ConFIGURING -般被翻譯為組態(tài)。在自動(dòng)化領(lǐng)域中有一個(gè)趨勢(shì)就是系統(tǒng)的模塊化,即由帶有智能功能技術(shù)模塊組成的自動(dòng)化系統(tǒng),對(duì)這些模塊預(yù)先的初始化、編程就是組態(tài)。
功能塊圖( FBD)使用類似于布爾代數(shù)的圖形邏輯符號(hào)來(lái)表示控制邏輯,一些復(fù)雜的功能用指令框表示,功能框圖類似于與門(mén)、或門(mén)的方框,來(lái)表示邏輯關(guān)系。一般用一個(gè)指令框表示一種功能,框圖內(nèi)的符號(hào)表達(dá)了該框圖的運(yùn)算功能,框的左側(cè)為邏輯運(yùn)算的輸入變量,右側(cè)為輸出變量,框左側(cè)的小圓圈表示對(duì)輸入變量取反(“非”運(yùn)算),框右側(cè)的小圓圈表示對(duì)運(yùn)算結(jié)果再進(jìn)行“非”運(yùn)算。方框被“導(dǎo)線”連接在一起,信號(hào)自左向右流動(dòng)。FBD比較適合于有數(shù)字電路基礎(chǔ)的編程人員使用。與圖3 -1梯形圖相對(duì)應(yīng)的功能塊圖如圖3-2所示。
圖3 -2功能塊圖程序示例
利用功能塊圖( FBD)可以查看到像普通邏輯門(mén)圖形的邏輯盒指令。它沒(méi)有梯形圖編程器中的觸點(diǎn)和線圈,但有與之等價(jià)的指令,這些指令是作為盒指令出現(xiàn)的,程序邏輯是由這些盒指令之間的連接決定的。也就是說(shuō),一個(gè)指令(如AND盒)的輸出可以用來(lái)允許啟動(dòng)另一條指令(如定時(shí)器),這樣可以建立所需要的控制邏輯。這樣的連接思想可以解決范圍廣泛的邏輯問(wèn)題。功能塊圖( FBD)編程語(yǔ)言有利于程序流的跟蹤,但在目前使用較少。
山東西門(mén)子PLC模塊代理