產品分類

      當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器 > 大型PLC可編程控制器

      類型分類:
      科普知識
      數據分類:
      大型PLC可編程控制器

      VB環境下利用并口實現PLC控制

      發布日期:2022-04-27 點擊率:90

      1 引言

      普通的計算機一般都配有并行接口(就是通常用的打印機接口),它是通過25芯的d型接頭連接打印機與計算機的,計算機的并行接口不僅可以向打印機發送數據,還可以從打印機接收數據(打印的工作狀態)。因此,利用計算機的并行接口,你可以去控制外部繼電器的吸合,從而控制外部設備,同樣可以利用它來檢測外部設備的狀態。不需添加任何硬件。從而使一臺普通的計算機具有“plc”的開關量的功能。

      本文分析的系統,把普通并口實現了一個4輸入8輸出數字量的功能,切不需任何投資。們先對打印機的并行口做一下細致的分析。配有一個并口的計算機經系統引導后,初始化過程把并行端口配置成lpt1,這個端口又分配了數據地址378h, 狀態地址379h。其中378h端口做輸出端口,379h端口做輸入端口。

      2 并口數據采集控制原理

      (1) 端口378h,378h的管腳見表1。

      在計算機通電后的自然狀態,378h端口的每個數據位為1,表1中每個管腳對地(25腳)為高電平5v。即378h地址的內容為ff(十進制是255),當控制378h的內容為1(十進制)二進制碼是00000001時,即2腳對地輸出高電平,其它對地是0電平。如控制378h的內容為2(十進制)二進制碼是00000010,即3腳對地輸出高電平,其它對地是0電平。如控制378h的內容為3(十進制)二進制碼是00000011,即2、3腳對地輸出高電平,其它對地是0電平。依次類推。

      當某管腳對地是高電平5v時,由于每條數據線的輸出電流高達20ma,可以接5v的直流繼電器,通過繼電器的觸點在去控制其它的設備,如電磁閥、電機等。圖1是用打印機并行接口實現的繼電器控制電路,此電路稍加修改即可用于其它設備的開關控制。

      (2) 端口379h,379h的管腳見表2。

      在計算機通電后的自然狀態,379h端口的數據位第7位是0,其余每個數據位為1,即上述每個管腳對地(25腳)為高電平5v。即379h地址的內容為127(十進制)二進制碼是01111111。當只把某管腳(如10腳)通過500ω的電阻接到25腳,則它所對應的數據位是0,其它的數據位不變,則379h的內容為63(十進制)二進制碼是00111111。當只把某管腳(如12腳)通過500ω的電阻接到地25腳,則它所對應的數據位是0,其它的數據位不變,則379h的內容為95(十進制)二進制碼是01011111依次類推。

      圖2是用打印機并行接口實現的開關檢測控制電路,當k斷開時,379h為127(十進制),當k閉合時,379h為111(十進制)二進制數是01101111,即13腳所連接的第4數據位為0。

      3 軟件實現

      vb是一種可視化的編程語言,自面世以來,因簡單易用倍受廣大編程人員的青睞,作為一種非常方便的windows95應用程序開發平臺,可以實現windows的絕大部分功能。

      vb中沒有專門的對并口的操作控件,要實現對并口的讀寫,需要對i/o進行操作,但對硬件進行訪問以及利用各種控制接口板進行數據采集,僅靠vb是無法解決的。解決這樣的問題可以間接使用動態鏈接庫dll(dynamic link library)來實現。程序人員利用dll可以實現應用程序共享代碼和資源,dll與用戶的程序完全分開。

      動態鏈接庫(dll)雖然是一個可執行模塊,但它并不可以直接運行,它只是提供一群函數供windows應用程序或其它動態鏈接庫調用,以完成其特殊任務。由于動態鏈接庫是在應用程序運行期間被連接起來的,故稱為動態鏈接庫。本設計用vc++設計了一個讀寫io端口的動態鏈接庫io.dll。

      筆者利用vc++5.0開發的dll的完整的程序清單如下:

      ∥dll源文件i0.cpp

      #include

      #include

      int far pascal outport(unsigned)

      short sport);

      int far pascal outport(unsigned short port,int databyte);

      ∥d11entrypoint函數

      bool winapi d11entrypoint

      (hinstance hd11,

      dworddwreason,

      lpvoid reserved)



      switch(dwreason)



      case dll_process_attach:



      break;



      case dll_process_detach:



      break;





      return true;



      ∥兩個功能函數

      int far pascal inport(unsigned short port)



      reture(_inp(prot);



      int far pascal outport(unsigned short port,int databyte)



      int a;

      a=_outp(port,databyte);

      return a;



      ∥模塊定義文件i0.def

      code preload moveable discardable

      data preload single

      exports

      inport

      outport

      動態鏈接庫只有在別的模塊中調用了它的某個函數以后,該動態鏈接庫才發生作用。dll函數或過程必須在全局模塊(*.bas)中正確說明才有效。vb是用declare語句把一個dll函數引入vb中的,它告訴vb在哪里找到dll函數,并且讓vb知道dll需要哪種類型的參數,同時返回哪種類型的值。當某個dll函數用declare語句正確聲明以后,就可以像使用其它函數一樣使用這個dll函數。

      在vb應用程序的全局模塊中聲明i0.dll并將其放入windows\system目錄下,這樣就可以向使用windows

      api一樣使用i0中的inport(輸入)和outport(輸出)函數了。

      declare function inport lib“io.d11”

      (byval prot as integer)as long

      declare function outport lib“io.d11”

      (byval port as integer,byval

      databyte as long)as long

      下面的程序對圖1和圖2的例子進行設計。(只列出輸入輸出的讀寫操作程序)

      private sub 輸入_click

      x=inport(&h379)

      print x

      end sub

      private sub輸出_click

      y=outport(&h378,1)

      end sub

      4 結束語

      并口25管腳中,作輸出用的是2~9共8個管腳,作輸入用的10、12、13、15共4個管腳,25腳地,利用并口可方便的實現了4入8出的開關量控制。

      在上位機中采用vb等語言編程,利用計算機的并口,巧妙地實現plc的開關量功能,而且可利用vb等語言的界面設計的功能,使系統做到監控一體。且系統不需額外的投資,使用靈活簡單,可靠性高。

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      主站蜘蛛池模板: 国产精品亚洲午夜一区二区三区| 亚洲天堂一区在线| 国产精品毛片VA一区二区三区| 国产美女精品一区二区三区| 亚洲一区二区三区高清| 好爽毛片一区二区三区四| 国产大秀视频一区二区三区| 精品国产福利一区二区| 国产精品毛片VA一区二区三区| 亚洲片国产一区一级在线观看| 爱爱帝国亚洲一区二区三区| 97久久精品午夜一区二区 | 久久无码AV一区二区三区| 久久无码精品一区二区三区| 国产精品综合一区二区三区| 亚洲熟女综合色一区二区三区| 精品无码人妻一区二区三区品 | 在线精品国产一区二区三区| 国产熟女一区二区三区五月婷| 国产一区二区在线观看| 亚洲一区二区三区成人网站 | 色系一区二区三区四区五区| 中文字幕无线码一区二区| 亚欧在线精品免费观看一区| 亚洲福利电影一区二区?| 日韩内射美女人妻一区二区三区| 久久精品一区二区三区不卡| 熟妇人妻系列av无码一区二区| 国产午夜三级一区二区三| 天堂Aⅴ无码一区二区三区| 伊人久久大香线蕉av一区| 亚洲日韩国产精品第一页一区| 久久精品道一区二区三区| 亚洲国产精品自在线一区二区| 少妇无码一区二区三区免费| 精品无码日韩一区二区三区不卡| 88国产精品视频一区二区三区| 中文乱码人妻系列一区二区| 无码人妻一区二区三区免费| 无码午夜人妻一区二区不卡视频| 高清一区二区在线观看|