PLC程序詳解和初學者必須掌握的幾個梯形圖出處:本站整理 作者:佚名 日期:2010-9-20 17:20:03 [大 中 小] 評論: 0 | 我要發(fā)表看法一,、時間繼電器: TON 使能=1計數(shù),計數(shù)到設定值時(一直計數(shù)到32767),,定時器位=1,。使能=0復位(定時器位=0)。 TOF 使能=1,,定時器位=1,,計數(shù)器復位(清零)。使能由1到0負跳變,,計數(shù)器開始計數(shù),,到設定值時(停止計數(shù)),定時器位=0,。如下圖:
圖1:使能=1時,,TOF(T38)的觸點動作圖
圖2:使能斷開后,計數(shù)到設定值后,,TOF(T38)的觸點動作圖(其中T38常開觸點是在使能由1到0負跳變后計數(shù)器計時到設定值后變?yōu)?的) TONR 使能=1,,計數(shù)器開始計數(shù),計數(shù)到設定值時,,計數(shù)器位=1,。使能斷開,計數(shù)器停止計數(shù),,計數(shù)器位仍為1,,使能位再為1時,計數(shù)器在原來的計數(shù)基礎上計數(shù),。 以上三種計數(shù)器可以通過復位指令復位,。 正交計數(shù)器 A相超前B相90度,,增計數(shù) B相超前A相90度,減計數(shù) 當要改變計數(shù)方向時(增計數(shù)或減計數(shù)),,只要A相和B相的接線交換一下就可以了,。 二、譯碼指令和編碼指令: 譯碼指令和編碼指令執(zhí)行結(jié)果如圖所示:
DECO是將VW2000的第十位置零(為十進制的1024),,ENCO輸入IN最低位為1的是第3位,,把3寫入VB10(二進制11)。 三,、填表指令(ATT) S7-200填表指令(ATT)的使能端(EN)必須使用一個上升沿或下降沿指令(即在下圖的I0.1后加一個上升沿或下降沿),,若單純使用一個常開觸點,就會出現(xiàn)以下錯誤:
這一點在編程手冊中也沒有說明,,需要注意,。其他的表格指令也同樣。 四,、數(shù)據(jù)轉(zhuǎn)換指令 使用數(shù)據(jù)轉(zhuǎn)換指令時,,一定要注意數(shù)據(jù)的范圍,數(shù)據(jù)范圍大的轉(zhuǎn)換為數(shù)據(jù)范圍小的發(fā)注意不要超過范圍,。如下圖所示為數(shù)據(jù)的大小及其范圍,。 (1)BCD碼轉(zhuǎn)化為整數(shù)(BCD_I) 關于什么是BCD碼,請參看《關于BCD碼》,。 BCD碼轉(zhuǎn)化為整數(shù),,我是這樣理解的:把BCD碼的數(shù)值看成為十進制數(shù),然后把BCD到整數(shù)的轉(zhuǎn)化看成是十進制數(shù)到十六進制數(shù)的轉(zhuǎn)化,。如下圖所示,,BCD碼為54,轉(zhuǎn)化為整數(shù)后為36,。
整數(shù)轉(zhuǎn)化為BCD碼(I_BCD)則正好相反,,看成是十六進制到十進制的轉(zhuǎn)化。 (2)整數(shù)轉(zhuǎn)化為雙整數(shù)(I_DI) 此問題需要注意的是:整數(shù)轉(zhuǎn)化為雙整數(shù)后,,符號位被擴展,,因為整數(shù)的精度小于雙整數(shù)的精度,轉(zhuǎn)化后,,雙整數(shù)除了表示整數(shù)的數(shù)值所占的位外,,其余空位用符號位填充。如整數(shù)45轉(zhuǎn)化為雙整數(shù)后,,基二進制表示為:2#0000_0000_0000_0000_0000_0000_0010_1101,,而整數(shù)-45轉(zhuǎn)化為雙整數(shù)后則為:2#1111_1111_1111_1111_1111_1111_1101_0011。 五,、不要重復使用PLC輸出線圈 基本邏輯指令中常開接點和常閉接點,,作為使能的條件,在語法上和實際編程中都可以無限次的重復使用,。 PLC輸出線圈,,作為驅(qū)動元件,在語法上是可以無限次的使用,。但在實際編程中是不應該的,,應該避免使用的。因為,,在重復使用的輸出線圈中只有程序中最后一個是有效的,,其它都是無效的。輸出線圈具有最后優(yōu)先權(quán),。 如圖1和2所示,。
圖1:輸出線路未重復使用 圖2:輸出線路未重復使用 1所示,輸出線圈Q0.0是單一使用,,表示I0.0和I0.1兩個常開接點中任何一個閉合,,輸出線圈都得電輸出。 圖2所示,,輸出線圈Q0.0是重復使用,,在網(wǎng)絡1和網(wǎng)絡2中重復使用兩次,目的和圖1所示一樣,,要求I0.0和I0.1兩個常開接點中任何一個閉合,,輸出線圈得電輸出。 首先需要肯定是圖2所示的程序在語法上是完全正確的,。但是,,Q0.0重復使用的輸出線圈中,真正有效的是網(wǎng)絡2,,網(wǎng)絡1是多余的,、無效的。也就是說,,I0.0無論是閉合還是斷開,,都對Q0.0不起作用,Q0.0是否得電是由I0.1決定的,。 這是因為PLC在一個掃描周期中,,PLC輸出點的刷新是在程序執(zhí)行完畢后執(zhí)行的,在一個掃描周期中,,即使I0.0閉 合,,I0.1斷開,在PLC程序執(zhí)行網(wǎng)絡1時,,輸出點Q0.0映像存儲器為1,,在執(zhí)行網(wǎng)絡2時,,輸出點Q0.0映像存儲器又變?yōu)?。程序執(zhí)行完畢,,PLC輸出點才執(zhí)行刷新,,最終輸出點Q0.0失電不輸出。同理,,在一個掃描周期中,,I0.0斷開,I0.1閉合,,輸出點Q0.0映像存儲器最終為1,,在PLC輸出點執(zhí)行刷新時,輸出點得電輸出,。因此,,圖2所示的程序中,對Q0.0起作用的只是I0.1,。 因此,,在PLC編程時,重復使用數(shù)出線圈,。盡管在語法上是正確的,,但是應該避免使用的。 幾種置位,、復位的方法和比較 位置位,、復位操作方法上,有好幾種方法,,可以直接采用置位,、復位指令,也可以采用數(shù)據(jù)傳送指令,、表格填充指令,,甚至可以采用移位循環(huán)指令。 這幾種方法在具體運用時,,也要根據(jù)情況而定,。下面用一個范例來講解他們的不同之處。要求對Q0.0~0.7,、Q1.0~1.7十六位輸出進行置位,、復位。
圖 幾種置位,、復位的方法 在以上幾種方法中,,除移位循環(huán)指令外,其他指令比較好理解。 移位循環(huán)指令的方法,,置位是對16#FFFF十六位常數(shù)左循環(huán)16位,,送入輸出字QW0(由Q0.0~0.7、Q1.0~1.7組成),,無論16#FFFF如何循環(huán),,還是16#FFFF,16位輸出,。復位采用對QW0一次掃描周期一次執(zhí)行16位左移位指令,將QW0中的數(shù)據(jù)全部移出(如果是帶符號位的字,,連符號位也移出),,輸出復位。 在上面的方法中,,直接采用置位,、復位的方法不僅可以對字節(jié)、字,、雙字中的位進行置位,、復位操作,也可以對不成字節(jié),、字,、雙字的位進行操作。而數(shù)據(jù)傳送指令,、移位循環(huán)指令,、填充指令只能對字節(jié)、字,、雙字中的位進行置位,、復位操作,其中填充指令還只能對字操作,。 比如單單對Q0.0~0.6七個位輸出進行置位,、復位,采用數(shù)據(jù)傳送指令,、移位循環(huán)指令,、填充指令是很難實現(xiàn)的,此時只有采用直接置位,、復位指令的方法,。 |
|