濟寧西門子代理商
PLC基本指令及程序設(shè)計(S7-200為例)
一、PLC的基本邏輯指令
1、邏輯取及線圈驅(qū)動指令
1-1:邏輯取及線圈驅(qū)動指令:LD(load)、LDN(load not)、=(out) LD:用于網(wǎng)絡(luò)塊邏輯運算開始常開觸點與母線的連接 LDN:取反指令,常閉觸點與母線連接 =:線圈驅(qū)動指令 注:1、在分支電路塊開始也要用LDLDN 2、并聯(lián)的=可連續(xù)使用多次 3、在同一程序中不能用雙線圈輸出?。?!即任一元件在程序中只能使用一次=指令 4、T和C作為輸出線圈時不用=
1-2:取反指令NOT:邏輯取反。
2、觸點串聯(lián)指令
A(and)、AN(and not) A:與指令。用于單個常開觸點的串聯(lián) AN:用于單個常閉觸點的串聯(lián) 注:1、A/AN可連續(xù)使用多次 2、連續(xù)輸出電路可反復用=(不是在分支處,而是連續(xù)的輸出(即在緊貼線圈之前)) 3、AAN操作數(shù)為:I Q M SM T C V S L
3、觸點并聯(lián)指令
O(or) ON(or not) O:或指令。用于單個常開觸點的并聯(lián)連接 ON:或反指令。用于單個常閉觸點的并聯(lián)連接 注:1、O/ON可連續(xù)使用
4、置位、復位指令
S bit,N(從bit位開始連續(xù)N個元件置1) R bit,N(從bit位開始連續(xù)N個元件清零) 注:1、兩者對立,保持作用只有當相對的作用時才會釋放。 2、S/R可以互換次序使用,寫在后面的指令具有優(yōu)先權(quán) 3、對T C復位 當前值被清零,但有其特殊性,后面說 4、N的常數(shù)范圍0-255 也可用變量,一般用常量。
5、RS觸發(fā)器指令
SR(Set Dominant Bistable):置位優(yōu)先觸發(fā)器指令。當置位信號(S1)和復位信號(R)都為真時,輸出為真。 RS(Reset Dominant Bistable):復位優(yōu)先觸發(fā)器指令。 兩個為RS觸發(fā)器,不同的是在同時輸入為1(S=R=1)時,哪個優(yōu)先
6、立即指令
不受PLC循環(huán)掃描工作方式的影響。
立即取 LDI bit(I) 立即取反 LDNI bit(I) 立即或 OI bit(I) 立即或反 ONI bit(I) 立即與 AI bit(I) 立即與反ANI bit(I)
立即輸出 =I bit
立即置位 SI bit,N(0~128)
立即復位 RI bit,N(0~128)
考慮到穩(wěn)定性和快速執(zhí)行,一般不用立即指令
7、邊沿脈沖指令
EU(Edge Up) 在上升沿產(chǎn)生脈沖 ED(Edge Down) 在下降沿產(chǎn)生脈沖
(!!注:脈沖寬度為一個掃描周期,所以在程序的其他地方可以用到在此指令之后的線圈)
8、串聯(lián)電路塊的并聯(lián)連接指令(OLD)
注意:1、塊電路的開始也要用LD/LDN指令 2、每次完成一次塊電路的并聯(lián)時寫上OLD命令(在并聯(lián)完成之后) 3、OLD無操作數(shù)
實質(zhì):塊電路完成邏輯運算后,結(jié)果存放在堆棧棧頂,OLD指令把棧頂上面兩層的內(nèi)容進行“或"操作,再將結(jié)果存放在棧頂。
濟寧西門子代理商
2. PLC - PG/PC 遠程鏈接
由于下列原因,在帶被動DP接口的ET200S CPU中不能進行這種類型的鏈接:
在該運行作模式中,S7連接通過功能塊“PG_DIAL"建立從PLC到本地TS適配器的連接。功能塊“PG_DIAL"隨TeleService軟件提供并集成到已安裝的STEP 7軟件包中。“PG_DIAL"功能塊內(nèi)部調(diào)用S7基本通訊塊:X_SEND和X_GET。然后,TS適配器自己通過已連接好的調(diào)制解調(diào)器自己建立到遠程PG/PC的遠程連接。在此連接中,應(yīng)用程序(用PRODAVE MPI創(chuàng)建)扮演相應(yīng)通訊伙伴的角色。在這種情況下,CPU必須承擔建立連接的任務(wù)。只有CPU的接口為 主動的接口并具有MPI屬性(通過 X 塊支持S7基本通訊)才有可能。
圖2:PLC-PG 遠程鏈接
3. PLC - PLC 遠程鏈接
該連接用于通過WAN的CPU-CPU通訊。至少一方必須主動建立連接(啟動程序),為此,這一方的通訊接口必須為主動接口,而且S7基本通訊塊可用(X_PUT,X_SEND,X_GET,X_ABORT)。另一方具有服務(wù)器功能即可,而且 被動接口亦可行。
將S7連接到本地TS適配器通過本地CPU中的功能塊“PLC_DIAL"建立。功能塊“PLC_DIAL"隨TeleService軟件提供并集成到已安裝的 STEP 7軟架包中?!癙LC_DIAL"功能塊提供到本地TS適配器的選擇信息,之后TS適配器通過已連接的調(diào)制解調(diào)器建立到遠程TS適配器的遠程連接。數(shù)據(jù)傳送期間,遠程TS適配器如“透明路由器"一樣動作。它建立遠程CPU的S7連接,并且用遠程CPU的操作固件執(zhí)行X_GET和X_PUT任務(wù)而無需在遠程CPU上使用具有此功能的用戶程序。
ET200S CPU有一個被動接口,因而如服務(wù)器那樣支持PLC-PLC遠程連接,盡管只適用于引發(fā)設(shè)備(本地CPU)中的系統(tǒng)功能X_PUT和/或X_GET。之后,可以比較ET200S的PROFIBUS接口和MPI接口(PB地址 = MPI地址)。必須將ET200S連接到如同TS適配器一樣的相同PROFIBUS段。在參數(shù)化TS適配器時,必須設(shè)置對應(yīng)于ET200 CPU的PROFIBUS設(shè)置文件。
圖3:PLC-PLC 遠程鏈接
問題:如何計算當前程序所需的Local Data大小并合理設(shè)置S7 400 CPU屬性中的Memory選項卡中的Local Data,S7 400 CPU中的Local data設(shè)置不當會導致什么問題?
回答:Local data顧名思義為本地數(shù)據(jù),在西門子控制器中有一部分內(nèi)存空間被設(shè)置為L區(qū)間,它被用于控制器在運行程序時存儲臨時數(shù)據(jù)。由于編寫FB/FC程序的需要和OB中調(diào)用功能塊結(jié)構(gòu)的不同,不同的OB由于調(diào)用不同的FB/FC,因此所需的Local data的大小各不相同(被調(diào)用的FB/FC將占用當前調(diào)用他的OB塊的Local Data資源)。在控制器硬件組態(tài)中的CPU屬性設(shè)置中,Memory選項卡用于設(shè)置Local data的分配。如果相應(yīng)OB塊實際運行所需的Local data大于硬件組態(tài)中所設(shè)置的Local Data大小,那么相應(yīng)的程序?qū)o法運行,CPU將報告INTF錯誤,甚至更為嚴重的情況下CPU可能會停止運行。但如果盲目將Local Data的分配設(shè)置過大,將會浪費一部分寶貴的CPU內(nèi)存空間。
S7 300CPU中的Local data不可修改,每個優(yōu)先級固定設(shè)置為256 bytes,S7 400的Local data則可以人為修改。由此可以看出正確設(shè)置S7400 CPU的Local Data的大小非常重要。在控制器硬件組態(tài)中CPU屬性? Memory選項卡的Local Data區(qū)域用于設(shè)置基于優(yōu)先級的Local Data(如下圖所示):
Pic1: Local Data的分配
在PCS7組態(tài)的項目中,在編譯CFC程序后,系統(tǒng)將會自動計算各OB塊所需的Local Data大小,可以通過交叉索引(Chart reference data ? Local data,如下圖所示)查詢到。
Pic2: Chart reference data ? Local data
而普通的由用戶采用Step7編程方式編寫的程序,程序功能塊及OB塊各自的調(diào)用結(jié)構(gòu)由用戶自行控制,需要在編寫完整個程序之后自行計算。