如何在VB境下利用并口实现PLC控制.doc

如何在VB境下利用并口实现PLC控制.doc

ID:55564991

大小:35.50 KB

页数:6页

时间:2020-05-18

如何在VB境下利用并口实现PLC控制.doc_第1页
如何在VB境下利用并口实现PLC控制.doc_第2页
如何在VB境下利用并口实现PLC控制.doc_第3页
如何在VB境下利用并口实现PLC控制.doc_第4页
如何在VB境下利用并口实现PLC控制.doc_第5页
资源描述:

《如何在VB境下利用并口实现PLC控制.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1引言普通的计算机一般都配有并行接口(就是通常用的打印机接口),它是通过25芯的D型接头连接打印机与计算机的,计算机的并行接口不仅可以向打印机发送数据,还可以从打印机接收数据(打印的工作状态)。因此,利用计算机的并行接口,你可以去控制外部继电器的吸合,从而控制外部设备,同样可以利用它来检测外部设备的状态。不需添加任何硬件。从而使一台普通的计算机具有“PLC”的开关量的功能。本文分析的系统,把普通并口实现了一个4输入8输出数字量的功能,切不需任何投资。们先对打印机的并行口做一下细致的分析。配有一个并口的计算机

2、经系统引导后,初始化过程把并行端口配置成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(十进制)二进制码是0

3、0000010,即3脚对地输出高电平,其它对地是0电平。如控制378H的内容为3(十进制)二进制码是00000011,即2、3脚对地输出高电平,其它对地是0电平。依次类推。当某管脚对地是高电平5V时,由于每条数据线的输出电流高达20mA,可以接5V的直流继电器,通过继电器的触点在去控制其它的设备,如电磁阀、电机等。图1是用打印机并行接口实现的继电器控制电路,此电路稍加修改即可用于其它设备的开关控制。(2)端口379H,379H的管脚见表2。在计算机通电后的自然状态,379H端口的数据位第7位是0,其余每个数

4、据位为1,即上述每个管脚对地(25脚)为高电平5V。即379H地址的内容为127(十进制)二进制码是01111111。当只把某管脚(如10脚)通过500Ω的电阻接到25脚,则它所对应的数据位是0,其它的数据位不变,则379H的内容为63(十进制)二进制码是00111111。当只把某管脚(如12脚)通过500Ω的电阻接到地25脚,则它所对应的数据位是0,其它的数据位不变,则379H的内容为95(十进制)二进制码是01011111依次类推。图2是用打印机并行接口实现的开关检测控制电路,当K断开时,379H为12

5、7(十进制),当K闭合时,379H为111(十进制)二进制数是01101111,即13脚所连接的第4数据位为0。3软件实现VB是一种可视化的编程语言,自面世以来,因简单易用倍受广大编程人员的青睐,作为一种非常方便的Windows95应用程序开发平台,可以实现Windows的绝大部分功能。VB中没有专门的对并口的操作控件,要实现对并口的读写,需要对I/O进行操作,但对硬件进行访问以及利用各种控制接口板进行数据采集,仅靠VB是无法解决的。解决这样的问题可以间接使用动态链接库DLL(DynamicLinkLibr

6、ary)来实现。程序人员利用DLL可以实现应用程序共享代码和资源,DLL与用户的程序完全分开。动态链接库(DLL)虽然是一个可执行模块,但它并不可以直接运行,它只是提供一群函数供Windows应用程序或其它动态链接库调用,以完成其特殊任务。由于动态链接库是在应用程序运行期间被连接起来的,故称为动态链接库。本设计用VC++设计了一个读写IO端口的动态链接库IO.DLL。笔者利用VC++5.0开发的DLL的完整的程序清单如下:∥DLL源文件I0.CPP#include#include

7、nio.h>intFARPASCALoutport(unsigned)shortsport);intFARPASCALoutport(unsignedshortport,intdatabyte);∥D11EntryPoint函数BOOLWINAPID11EntryPoint(HINSTANCEhD11,DWORDdwReason,LPVOIDReserved){  switch(dwReason){caseDLL_PROCESS_ATTACH:  {    break;  }caseDLL_PROCESS_

8、DETACH:  {    break;  }}returnTRUE;}∥两个功能函数intFARPASCALinport(unsignedshortport){  reture(_inp(prot);)intFARPASCALoutport(unsignedshortport,intdatabyte){inta;a=_outp(port,databyte);returna;}∥模块定义文件I0.DEFCODEP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。