1 引言
與其它工業控制系統相比,PLC控制系統具有可靠性高、抗干擾能力強等突出優點,因而廣泛應用于工業控制領域。對于那些不必采用上位機監控+PLC現場控制的簡易控制系統,操作面板的完善與否直接影響到整個系統的智能化程度高低。對小型控制系統而言,在滿足功能的前提下,高性價比一直是設計人員追求的目標,若采用觸摸屏(如SIEMENS的TP270)+組態軟件(如PROTOOL)的方式組成人機">

      技術頻道

      基于S7-200PLC的矩陣式鍵盤設計

      1 引言
      與其它工業控制系統相比,PLC控制系統具有可靠性高、抗干擾能力強等突出優點,因而廣泛應用于工業控制領域。對于那些不必采用上位機監控+PLC現場控制的簡易控制系統,操作面板的完善與否直接影響到整個系統的智能化程度高低。對小型控制系統而言,在滿足功能的前提下,高性價比一直是設計人員追求的目標,若采用觸摸屏(如SIEMENS的TP270)+組態軟件(如PROTOOL)的方式組成人機界面,勢必使整個系統的性價比大為降低,因此,提出基于PLC的矩陣式鍵盤設計方案具有較大的實際意義。
      2 矩陣式鍵盤工作原理
      矩陣式鍵盤是相對于獨立式鍵盤而言的,也叫行列式鍵盤,是當鍵數較多時為節省I/O點而采取的一種結構。在微機系統中,矩陣式鍵盤的構成方式如圖1所示。

      圖1 矩陣式鍵盤結構圖


      首先,判斷整個鍵盤上有無鍵按下。方法是:將列全輸出為0,然后讀入行的狀態,如果行讀入的狀態全為1,則無鍵按下,不全為1則有鍵按下。
      其次,若有鍵按下則逐列掃描。方法是:依次將列線送低電平0,檢查對應行線的狀態;若行線全為1,則按鍵不在此列;若不全為1,則按鍵必在此列,且是與0電平行線相交的那個鍵。最后,確定鍵值,并進入鍵處理程序。
      3 矩陣式鍵盤硬件設計
      在PLC系統中設計矩陣式鍵盤不僅要用到輸入口,而且也要用到輸出口,因此,了解PLC I/O口內部電路的結構以及工作原理是十分重要的。下面以S7-200的DC輸入、輸出模塊為例,簡要說明其工作原理。
      3.1 輸入模塊
      如圖2所示,為PLC的DC輸入模塊,其中,K1-輸入開關;M-公共端;I0.0-輸入點;R1、R2的典型值為5.6K、1K。

      圖2 直流輸入模塊電路圖


      工作原理:若輸入開關K1閉合,則輸入信號經RC濾波和光電隔離后,轉換為PLC的CPU所需的電平(一般為5V),再經過輸入選擇器與CPU的總線相連,從而將外部輸入開關的“ON”狀態輸入到PLC內部,此時輸入指示燈亮,且與該輸入點對應的輸入映像寄存器為“1”。若輸入開關斷開,則信號沒有形成通路,此時輸入指示燈不亮,表示為“OFF”狀態。
      3.2 輸出模塊
      如圖3所示,為PLC的DC輸出模塊,其中,L+接DC24V;Q0.0-輸出點。

      圖3 直流輸出模塊電路圖


      工作原理:若用戶程序將輸出置為“ON”狀態,則在刷新輸出階段CPU將“ON”信號送給輸出鎖存器,再經過光電耦合送給場效應管,使之飽和導通,此時輸出指示燈亮,且通過場效應管將DC24V和負載連通,從而使得負載獲得工作電流。反之,若用戶程序將輸出置為“OFF”狀態,則輸出指示燈不亮,情況與上述相反。

      3.3 鍵盤的硬件設計
      由以上分析可知:PLC的I/O口內部電路與一般的計算機系統(如單片機系統)有較大的不同,這就決定了在PLC系統中設計矩陣式鍵盤也有其特殊性。首先,由于輸入模塊中有RC濾波電路,其濾波延遲時間可以通過編程軟件設置,即其本身存在硬件消抖動的功能,因此不再需要軟件延時消抖動;其次,由于用到了PLC的輸出口,它本身可以輸出對M端有DC24V的電壓,因此不再需要外接電源;最后,由于PLC的輸入口有6K左右的輸入電阻,因此可以將DC24V的電壓直接加上,若為了延長I/O口的使用壽命,一般按照輸入模塊的技術指標來配置限流電阻,經查閱輸入電流的典型值為4mA,一般取R1=R2=R3=0.5K即可。如圖4所示為3行3列矩陣式鍵盤的結構圖。

      圖4 3×3鍵盤結構圖


      4 矩陣式鍵盤軟件設計
      4.1 PLC的掃描工作方式
      當PLC處于“RUN”工作模式下時,除上電初始化外,其它程序都采取周而復始的循環掃描方式,稱之為“PLC的掃描工作方式”,其執行流程如圖5所示:

      圖5 PLC的掃描工作流程


      在設計鍵盤時可暫不考慮通信和自診斷,則在一個掃描周期內剩下以下三個主要階段:
      (1) 輸入采樣階段,CPU將所有物理輸入點的狀態存入對應的過程映像寄存器中,到下次輸入采樣前,過程映像寄存器的內容均保持不變;
      (2) 程序執行階段,CPU按照從左到右、從上到下的順序執行程序,將運算結果寫到輸出映像寄存器或數據存儲區內;
      (3) 輸出刷新階段,在程序執行完后,CPU將過程輸出映像寄存器的狀態幾乎同時的更新到物理輸出點。
      4.2 鍵盤的軟件設計
      矩陣式鍵盤的軟件設計相對較為復雜,但無非是實現微機系統中所描述的鍵盤掃描程序的四個功能:
      (1) 判斷有無鍵按下;
      (2) 去機械抖動;
      (3) 求按下的鍵號;
      (4) 鍵閉合一次僅進行一次鍵功能操作。
      4.3 鍵盤設定及程序設計
      再結合微機系統中矩陣鍵盤的原理,設計3×3矩陣式鍵盤,特做如下設定:
      (1) 設定0~8號鍵分別與M0.0~M1.0對應,鍵按下,對應的位存儲點為“1”,鍵松開則為“0”;
      (2) 設定I0.0、I0.1、I0.2對應鍵盤的第0列、第1列、第2列,Q0.0、Q0.1、Q0.2對應鍵盤的第0行、第1行、第2行,M1.1為“有鍵按下”標志位;
      (3) 按圖4所示的方式構成3行3列矩陣式鍵盤,流程圖如圖6。

      圖6 鍵盤程序流程圖

      為增強程序的可讀性,利用STEP7-Micro/WIN V4.0編程軟件,用符號地址替代絕對地址,編制3×3鍵盤的STL程序如下所示。
      Network 1 判斷有無鍵按下
      LDN 有鍵按下
      S 第0行, 3 //全行掃描
      LD 第0列
      O 第1列
      O 第2列 //全列讀入
      AN 有鍵按下
      S 有鍵按下, 1 //有鍵按下,置標志位
      JMP 0
      LDN 有鍵按下
      MOVW 0, MW0 //無鍵按下,清零跳出
      JMP 9
      Network 2 散轉程序
      LD 有鍵按下
      A 第0行
      JMP 10 //跳至第0行
      LD 有鍵按下
      A 第1行
      JMP 11 //跳至第1行
      LD 有鍵按下
      A 第2行
      JMP 12 //跳至第2行
      Network 3 逐行掃描
      LBL 0 //第0行處理
      LD 有鍵按下
      RI 第0行, 3
      SI 第0行, 1 //立即置位Q0.0
      JMP 9
      LBL 10
      LD 第0列
      = KEY_0 //0鍵
      JMP 9
      LD 第1列
      = KEY_1 //1鍵
      JMP 9
      LD 第2列
      = KEY_2 //2鍵
      JMP 9
      LBL 1 //第1行處理
      LD 有鍵按下
      RI 第0行, 3
      SI 第1行, 1 //立即置位Q0.1
      JMP 9
      LBL 11
      LD 第0列
      = KEY_3 //3鍵
      JMP 9
      LD 第1列
      = KEY_4 //4鍵
      JMP 9
      LD 第2列
      = KEY_5 //5鍵
      JMP 9
      LBL 2 //第2行處理
      LD 有鍵按下
      RI 第0行, 3
      SI 第2行, 1 //立即置位Q0.2
      JMP 9
      LBL 12
      LD 第0列
      = KEY_6 //6鍵
      JMP 9
      LD 第1列
      = KEY_7 //7鍵
      JMP 9
      LD 第2列
      = KEY_8 //8鍵
      JMP 9
      LD 有鍵按下
      R 有鍵按下, 1
      //無鍵按下,清標志位
      Network 4 軟件延時
      LBL 9
      LD 有鍵按下 //有鍵按下才延時
      FOR VW0, 1, 500
      NOP 0
      NEXT
      4.4 程序的說明
      (1) 程序采用了立即置位、復位指令SI和RI,是為了更及時的置位復位輸出點,使程序的執行不受掃描周期的影響,也可用字節立即寫指令MOV_BIW來實現,但應該考慮對其它未用點的影響。
      (2) 程序的最后采用了軟件延時,是為了解決程序指令執行時間與輸入輸出滯后時間的不匹配。利用編程軟件STEP7-Micro/WIN V4.0中的System Block下的Input Filters選項可以設置輸入濾波時間,默認為6.4ms,減少濾波時間可以相應的減少軟件延時次數,但若濾波時間太小又達不到消抖動的目的。
      (3) 程序中沒有考慮多鍵同時按下的問題,在現有的程序中,若不同行有多個鍵按下,均以最先按下的那個鍵為準進行響應,但若同一行上有多個鍵按下,則又分要幾種情況,因此在應用時,應加強對按鍵的限制條件,避免由于誤操作而造成生產設備的損壞。
      (4) 程序中對每個按鈕的響應均是按下該鍵,則對應的存儲位為“1”,放開該鍵,則為“0”,沒有其它較為智能的功能。若鍵盤中有“加速”、“減速”等類似鍵時,往往希望有連續加減的功能,即按下“加速”一定時間后(如500ms),按照每規定時間(如100ms)增加一個單位的速度值,此時可以利用兩個定時器實現,其STL程序如下。
      LD 加速
      TON T37, 5
      LD 加速
      EU
      = 加速上升沿
      LD T37
      AN 每100MS通電一次
      TON T38, 1
      LD T38
      = 每100MS通電一次
      LD 每100MS通電一次
      O 加速上升沿
      EU
      +I 1, 速度存儲值

      5 結束語
      本文提出了在PLC系統中設計矩陣式鍵盤的一般方法并給出了3×3鍵盤的硬件連線圖和STL程序。在鍵數較多時,矩陣式鍵盤可以大大節省PLC的I/O點數,但程序設計的復雜度也隨之增加,因此使用時應在系統的硬件成本和實時性之間加以均衡考慮。此外,本文的設計思路具有通用性,只需稍加變動,就可移植到其它品牌的PLC中。文中的STL程序均已通過S7-200的編程軟件STEP7-Micro/WIN V4.0在CPU226 DC/DC/DC上調試通過,說明了本文設計方法的可行性。

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: av无码一区二区三区| 无码人妻精品一区二区三区99性| 欧洲精品免费一区二区三区| 精彩视频一区二区三区| 国产综合无码一区二区辣椒| 亚洲一本一道一区二区三区| 一区二区三区四区电影视频在线观看| 国内精品无码一区二区三区| 精品一区二区三区AV天堂| 亚洲视频在线一区二区三区| 激情内射日本一区二区三区| 无码av不卡一区二区三区| 在线日韩麻豆一区| 在线一区二区观看| 好爽毛片一区二区三区四无码三飞| 精品性影院一区二区三区内射| 精品国产一区二区三区久久蜜臀| 国产亚洲福利一区二区免费看| 无码人妻精一区二区三区| 国产肥熟女视频一区二区三区| 国产成人欧美一区二区三区 | 国产成人精品一区二三区熟女| 性色AV一区二区三区天美传媒| 久久综合九九亚洲一区| 精品一区二区久久久久久久网站| 亚洲国产精品一区二区九九 | 国产在线步兵一区二区三区| 国产精品免费视频一区| 一区二区福利视频| 爆乳熟妇一区二区三区| 国产一区视频在线| 亚洲一区欧洲一区| 一区二区不卡视频在线观看| 日本在线一区二区| 99久久精品午夜一区二区| 国产中文字幕一区| 无码AV中文一区二区三区| 无码人妻aⅴ一区二区三区有奶水 人妻夜夜爽天天爽一区 | 日本一区二区三区日本免费| 国产伦精品一区二区三区免费迷 | 一区二区精品视频|