《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 一些PLC編程經驗分享

一些PLC編程經驗分享

2018-07-20
關鍵詞: PLC 編程 TON

  一、時間繼電器:

  TON 使能=1計數,計數到設定值時(一直計數到32767),定時器位=1。使能=0復位(定時器位=0)。

  TOF 使能=1,定時器位=1,計數器復位(清零)。使能由1到0負跳變,計數器開始計數,到設定值時(停止計數),定時器位=0。如下圖:

1.jpg

  圖1:使能=1時,TOF(T38)的觸點動作圖

2.jpg

  圖2:使能斷開后,計數到設定值后,TOF(T38)的觸點動作圖(其中T38常開觸點是在使能由1到0負跳變后計數器計時到設定值后變為0的)

  TONR 使能=1,計數器開始計數,計數到設定值時,計數器位=1。使能斷開,計數器停止計數,計數器位仍為1,使能位再為1時,計數器在原來的計數基礎上計數。

  以上三種計數器可以通過復位指令復位。

  正交計數器 A相超前B相90度,增計數

  B相超前A相90度,減計數

  當要改變計數方向時(增計數或減計數),只要A相和B相的接線交換一下就可以了。

  二、譯碼指令和編碼指令:

  譯碼指令和編碼指令執行結果如圖所示:

3.jpg

  DECO是將VW2000的第十位置零(為十進制的1024),ENCO輸入IN最低位為1的是第3位,把3寫入VB10(二進制11)。

  三、填表指令(ATT)

  S7-200填表指令(ATT)的使能端(EN)必須使用一個上升沿或下降沿指令(即在下圖的I0.1后加一個上升沿或下降沿),若單純使用一個常開觸點,就會出現以下錯誤:

4.jpg

  這一點在編程手冊中也沒有說明,需要注意。其他的表格指令也同樣。

  四、數據轉換指令

  使用數據轉換指令時,一定要注意數據的范圍,數據范圍大的轉換為數據范圍小的發注意不要超過范圍。如下圖所示為數據的大小及其范圍。

  

5.jpg

  (1)BCD碼轉化為整數(BCD_I)

  BCD碼轉化為整數,我是這樣理解的:把BCD碼的數值看成為十進制數,然后把BCD到整數的轉化看成是十進制數到十六進制數的轉化。如下圖所示,BCD碼為54,轉化為整數后為36。

1.jpg

  整數轉化為BCD碼(I_BCD)則正好相反,看成是十六進制到十進制的轉化。

  (2)整數轉化為雙整數(I_DI)

  此問題需要注意的是:整數轉化為雙整數后,符號位被擴展,因為整數的精度小于雙整數的精度,轉化后,雙整數除了表示整數的數值所占的位外,其余空位用符號位填充。如整數45轉化為雙整數后,基二進制表示為:2#0000_0000_0000_0000_0000_0000_0010_1101,而整數-45轉化為雙整數后則為:2#1111_1111_1111_1111_1111_1111_1101_0011。

  五、不要重復使用PLC輸出線圈

  基本邏輯指令中常開接點和常閉接點,作為使能的條件,在語法上和實際編程中都可以無限次的重復使用。

  PLC輸出線圈,作為驅動元件,在語法上是可以無限次的使用。但在實際編程中是不應該的,應該避免使用的。因為,在重復使用的輸出線圈中只有程序中最后一個是有效的,其它都是無效的。輸出線圈具有最后優先權。

  如圖1和2所示。

2.jpg

  輸出線路未重復使用

3.jpg

  輸出線路未重復使用

  圖1:輸出線路未重復使用  圖2:輸出線路未重復使用

  圖1所示,輸出線圈Q0.0是單一使用,表示I0.0和I0.1兩個常開接點中任何一個閉合,輸出線圈都得電輸出。

  圖2所示,輸出線圈Q0.0是重復使用,在網絡1和網絡2中重復使用兩次,目的和圖1所示一樣,要求I0.0和I0.1兩個常開接點中任何一個閉合,輸出線圈得電輸出。

  首先需要肯定是圖2所示的程序在語法上是完全正確的。但是,Q0.0重復使用的輸出線圈中,真正有效的是網絡2,網絡1是多余的、無效的。也就是說,I0.0無論是閉合還是斷開,都對Q0.0不起作用,Q0.0是否得電是由I0.1決定的。

  這是因為PLC在一個掃描周期中,PLC輸出點的刷新是在程序執行完畢后執行的,在一個掃描周期中,即使I0.0閉合,I0.1斷開,在PLC程序執行網絡1時,輸出點Q0.0映像存儲器為1,在執行網絡2時,輸出點Q0.0映像存儲器又變為0。diangon.com程序執行完畢,PLC輸出點才執行刷新,最終輸出點Q0.0失電不輸出。同理,在一個掃描周期中,I0.0斷開,I0.1閉合,輸出點Q0.0映像存儲器最終為1,在PLC輸出點執行刷新時,輸出點得電輸出。因此,圖2所示的程序中,對Q0.0起作用的只是I0.1。

  因此,在PLC編程時,重復使用數出線圈。盡管在語法上是正確的,但是應該避免使用的。

  幾種置位、復位的方法和比較

  位置位、復位操作方法上,有好幾種方法,可以直接采用置位、復位指令,也可以采用數據傳送指令、表格填充指令,甚至可以采用移位循環指令。

  這幾種方法在具體運用時,也要根據情況而定。下面用一個范例來講解他們的不同之處。要求對Q0.0~0.7、Q1.0~1.7十六位輸出進行置位、復位。

4.jpg

  幾種置位、復位的方法

  在以上幾種方法中,除移位循環指令外,其他指令比較好理解。

  移位循環指令的方法,置位是對16#FFFF十六位常數左循環16位,送入輸出字QW0(由Q0.0~0.7、Q1.0~1.7組成),無論16#FFFF如何循環,還是16#FFFF,16位輸出。復位采用對QW0一次掃描周期一次執行16位左移位指令,將QW0中的數據全部移出(如果是帶符號位的字,連符號位也移出),輸出復位。

  在上面的方法中,直接采用置位、復位的方法不僅可以對字節、字、雙字中的位進行置位、復位操作,也可以對不成字節、字、雙字的位進行操作。而數據傳送指令、移位循環指令、填充指令只能對字節、字、雙字中的位進行置位、復位操作,其中填充指令還只能對字操作。

  比如單單對Q0.0~0.6七個位輸出進行置位、復位,采用數據傳送指令、移位循環指令、填充指令是很難實現的,此時只有采用直接置位、復位指令的方法。

 

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 午夜五月天 | 欧美日日| 婷婷久久综合九色综合九七 | 久久丝袜精品中文字幕 | 欧美一区二区三区高清视频 | 欧美在线一级片 | 国产午夜在线观看 | 亚洲免费人成 | 欧美freehdvideos性 | a久久久久一级毛片护士免费 | 日韩美女影院 | 在线观看视频99 | 国产国产精品人在线观看 | 国产欧美精品国产国产专区 | 欧美成人免费全部观看天天性色 | wwwxxx欧美| 色视频在线看 | 欧美一区二区三区性 | 亚洲高清在线看 | 99黄色网 | 有没有在线看片www 又www又黄又爽啪啪网站 | 欧美成人观看 | 在线观看免费午夜大片 | 第一福利网址 | 亚洲第一a亚洲 | 欧美精品第1页www劲爆 | 国产成人精品男人免费 | 成人黄视频在线观看 | 亚洲欧美日韩国产精品 | 成视频年人黄网站免费视频 | 伊人久久大香线焦在观看 | 国产在线精品一区二区不卡 | 2019天天干| 欧美一区二区在线观看视频 | 欧美激情视频一区 | 国产成人精品实拍在线 | 亚久久伊人精品青青草原2020 | 一级毛片免费观看 | 午夜影视福利 | 波多野结衣与公中出中文字幕 | 欧美精品亚洲精品日韩 |