西門子S7-1200的間接尋址功能(3)
林慧玲
發(fā)布于2018-03-26 15:35
3204
0
標(biāo)簽:西門子S7-1200
馬上注冊(cè),免費(fèi)學(xué)習(xí)超過100課時(shí)視頻教程,免費(fèi)下載海量學(xué)習(xí)資料
在前面介紹了使用梯形圖的方式來編寫一個(gè)取大值的程序,但在S7-1200PLC中,還支持SCL的編程,使用SCL的編程對(duì)一些復(fù)雜的數(shù)據(jù)處理會(huì)帶來很大的方便,下面還是以前面的例子為例說明使用SCL如何編寫程序?qū)崿F(xiàn)。
例子說明:
假設(shè)需要從一組數(shù)據(jù)中找出一個(gè)大值,并記錄這個(gè)大值是這組數(shù)據(jù)中的第幾個(gè)數(shù)據(jù)。
使用SCL編程來完成這個(gè)例子,這里我們需要用到兩個(gè)語句
(1) 用于條件判斷的語句
IF (條件) THEN (執(zhí)行語句)
END_IF;
解析:如果條件滿足,則執(zhí)行THEN后面的語句。
舉例:IF “DATA_A”<100 HEN
“DATA_A”:= “DATA_A”+1;
END_IF;
如果DATA_A的值小于100,則DATA_A的值等于自身加1.
(2) 用于循環(huán)執(zhí)行的語句
FOR (執(zhí)行變量):= (起始值) TO (結(jié)束值)BY(自增量)DO (后面需要執(zhí)行的語句);
END_FOR;
解析:從“起始值”開始循環(huán)到執(zhí)行,每循環(huán)一次,“執(zhí)行變量”的值會(huì)根據(jù)“自增量”的多少進(jìn)行變化,直到執(zhí)行到“結(jié)束值”時(shí),停止循環(huán)執(zhí)行。
舉例:FOR “count”: = 0 TO 4 BY 1 DO
“Data[count]”=10;
END_FOR;
把數(shù)值10填入到數(shù)值Data中的Data[0]到Data[4]的五個(gè)元素中,次循環(huán)時(shí)把10填入到Data[0],第二次循環(huán)時(shí)把10填入到Data[1],依次下去。
了解這兩條語句后,接下來我們可以設(shè)計(jì)一個(gè)程序,這里我們可以把他建立為一個(gè)功能塊(FB),方便以后使用。
步:
添加一個(gè)全局DB塊,在全局DB塊中建立一個(gè)變量名為Data的數(shù)組,元素個(gè)數(shù)可以視情況進(jìn)行設(shè)置。如下圖所示,元素個(gè)數(shù)設(shè)置為5個(gè)。
第二步:
添加一個(gè)FB塊,同時(shí)把編程語言選擇為SCL的編程語言。然后在FB的接口去中分別去定義相應(yīng)的變量,如下圖所示:
第三步:
用SCL語言編寫功能塊程序,如下所示
第四步:
在OB1中調(diào)用該功能塊,由于使用的是FB,因此在調(diào)用時(shí)需要分配相應(yīng)的背景DB,如下圖所示:
寄語:程序僅供參考,一個(gè)簡單的小例子,拋磚引玉,希望大家能夠使用SCL可以編寫出更復(fù)雜的一些功能塊出來。
作者:技成培訓(xùn)網(wǎng)(曾鑫)
本文為原創(chuàng)作品,盜取必究!
三菱PLC通信基礎(chǔ)及應(yīng)用
西門S7-200PLC從入門到精通
西門子200STEP-7 MicroWIN 編程軟件應(yīng)用
三菱FX系列PLC定位控制技術(shù)基礎(chǔ)知識(shí)