一、:
TON 使能=1計數,計數到設定值時(一直計數到32767),定時器位=1。使能=0複位(定時器位=0)。
TOF 使能=1,定時器位=1,計數器複位(清零)。使能由1到0負跳變,計數器開始計數,到設定值時(停止計數),定時器位=0。如下圖:
圖1:使能=1時,TOF(T38)的觸點動作圖
圖2:使能斷開後,計數到設定值後,TOF(T38)的觸點動作圖(其中T38常開觸點是在使能由1到0負跳變後計數器計時到設定值後變為(wei) 0的)
TONR 使能=1,計數器開始計數,計數到設定值時,計數器位=1。使能斷開,計數器停止計數,計數器位仍為(wei) 1,使能位再為(wei) 1時,計數器在原來的計數基礎上計數。
以上三種計數器可以通過複位指令複位。
正交計數器 A相超前B相90度,增計數
B相超前A相90度,減計數
當要改變計數方向時(增計數或減計數),隻要A相和B相的接線交換一下就可以了。
二、譯碼指令和編碼指令:
譯碼指令和編碼指令執行結果如圖所示:
DECO是將VW2000的第十位置零(為(wei) 十進製的1024),ENCO輸入IN最低位為(wei) 1的是第3位,把3寫(xie) 入VB10(二進製11)。
三、填表指令(ATT)
S7-200填表指令(ATT)的使能端(EN)必須使用一個(ge) 上升沿或下降沿指令(即在下圖的I0.1後加一個(ge) 上升沿或下降沿),若單純使用一個(ge) 常開觸點,就會(hui) 出現以下錯誤:
這一點在編程手冊(ce) 中也沒有說明,需要注意。其他的表格指令也同樣。
四、數據轉換指令
使用數據轉換指令時,一定要注意數據的範圍,數據範圍大的轉換為(wei) 數據範圍小的發注意不要超過範圍。如下圖所示為(wei) 數據的大小及其範圍。
(1)BCD碼轉化為(wei) 整數(BCD_I)
關(guan) 於(yu) 什麽(me) 是BCD碼,請參看《關(guan) 於(yu) BCD碼》。
BCD碼轉化為(wei) 整數,我是這樣理解的:把BCD碼的數值看成為(wei) 十進製數,然後把BCD到整數的轉化看成是十進製數到十六進製數的轉化。如下圖所示,BCD碼為(wei) 54,轉化為(wei) 整數後為(wei) 36。
整數轉化為(wei) BCD碼(I_BCD)則正好相反,看成是十六進製到十進製的轉化。
(2)整數轉化為(wei) 雙整數(I_DI)
此問題需要注意的是:整數轉化為(wei) 雙整數後,符號位被擴展,因為(wei) 整數的精度小於(yu) 雙整數的精度,轉化後,雙整數除了表示整數的數值所占的位外,其餘(yu) 空位用符號位填充。如整數45轉化為(wei) 雙整數後,基二進製表示為(wei) :2#0000_0000_0000_0000_0000_0000_0010_1101,而整數-45轉化為(wei) 雙整數後則為(wei) :2#1111_1111_1111_1111_1111_1111_1101_0011。
五、不要重複使用輸出線圈
基本邏輯指令中常開接點和常閉接點,作為(wei) 使能的條件,在語法上和實際編程中都可以無限次的重複使用。
PLC輸出線圈,作為(wei) 驅動元件,在語法上是可以無限次的使用。但在實際編程中是不應該的,應該避免使用的。因為(wei) ,在重複使用的輸出線圈中隻有程序中最後一個(ge) 是有效的,其它都是無效的。輸出線圈具有最後優(you) 先權。
如圖1和2所示。
圖1:輸出線路未重複使用 圖2:輸出線路未重複使用
1所示,輸出線圈Q0.0是單一使用,表示I0.0和I0.1兩(liang) 個(ge) 常開接點中任何一個(ge) 閉合,輸出線圈都得電輸出。
圖2所示,輸出線圈Q0.0是重複使用,在網絡1和網絡2中重複使用兩(liang) 次,目的和圖1所示一樣,要求I0.0和I0.1兩(liang) 個(ge) 常開接點中任何一個(ge) 閉合,輸出線圈得電輸出。
首先需要肯定是圖2所示的程序在語法上是完全正確的。但是,Q0.0重複使用的輸出線圈中,真正有效的是網絡2,網絡1是多餘(yu) 的、無效的。也就是說,I0.0無論是閉合還是斷開,都對Q0.0不起作用,Q0.0是否得電是由I0.1決(jue) 定的。
這是因為(wei) PLC在一個(ge) 掃描周期中,PLC輸出點的刷新是在程序執行完畢後執行的,在一個(ge) 掃描周期中,即使I0.0閉
合,I0.1斷開,在PLC程序執行網絡1時,輸出點Q0.0映像存儲(chu) 器為(wei) 1,在執行網絡2時,輸出點Q0.0映像存儲(chu) 器又變為(wei) 0。程序執行完畢,PLC輸出點才執行刷新,最終輸出點Q0.0失電不輸出。同理,在一個(ge) 掃描周期中,I0.0斷開,I0.1閉合,輸出點Q0.0映像存儲(chu) 器最終為(wei) 1,在PLC輸出點執行刷新時,輸出點得電輸出。因此,圖2所示的程序中,對Q0.0起作用的隻是I0.1。
因此,在時,重複使用數出線圈。盡管在語法上是正確的,但是應該避免使用的。
幾種置位、複位的方法和比較
位置位、複位操作方法上,有好幾種方法,可以直接采用置位、複位指令,也可以采用數據傳(chuan) 送指令、表格填充指令,甚至可以采用移位循環指令。
這幾種方法在具體(ti) 運用時,也要根據情況而定。下麵用一個(ge) 範例來講解他們(men) 的不同之處。要求對Q0.0~0.7、Q1.0~1.7十六位輸出進行置位、複位。
圖 幾種置位、複位的方法
在以上幾種方法中,除移位循環指令外,其他指令比較好理解。
移位循環指令的方法,置位是對16#FFFF十六位常數左循環16位,送入輸出字QW0(由Q0.0~0.7、Q1.0~1.7組成),無論16#FFFF如何循環,還是16#FFFF,16位輸出。複位采用對QW0一次掃描周期一次執行16位左移位指令,將QW0中的數據全部移出(如果是帶符號位的字,連符號位也移出),輸出複位。
在上麵的方法中,直接采用置位、複位的方法不僅(jin) 可以對字節、字、雙字中的位進行置位、複位操作,也可以對不成字節、字、雙字的位進行操作。而數據傳(chuan) 送指令、移位循環指令、填充指令隻能對字節、字、雙字中的位進行置位、複位操作,其中填充指令還隻能對字操作。
比如單單對Q0.0~0.6七個(ge) 位輸出進行置位、複位,采用數據傳(chuan) 送指令、移位循環指令、填充指令是很難實現的,此時隻有采用直接置位、複位指令的方法。
PLC編程初學者必須掌握的幾個(ge) 梯形圖
1。啟動、保持、停止電路
x1 x2
|--||---|/|-----(y1)
| |
| y1 |
|--||-
|
2.三相異步電機正反轉控製電路
|
| x0 x2 x1 y1
|--||--------|/|------|/|-------|/|-------(y0) 正轉
| |
| y0 |
|--||------
|
| x1 x2 x0 y0
|--||--------|/|------|/|-------|/|-------(y1) 反轉
| |
| y1 |
|--||------
|
3.閃爍電路
x0 T1
|--||---|/|-----(To)k20
|
| T0
|--||-----------(T1)k30
| |
|-----(y0)
4.延時接通/斷開電路
x0
|--||-----------------(T0)k90
|
| y1 x0
|--||--------|/|------(T1)k30
|
| t0 t1
|--||--------|/|------(y1)
| |
| y1 |
|--||------
|