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

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何在VB環境下利用并口实现PLC控制

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(十进制)二进制码,即2脚对地输出高电平,其它对地是0电平。如控制378H的内容为2(十进制)二进制码即3脚对地输出高电平,其它对地是0电平。如控制378H的内容为3(十进制)二进制码即2、3脚对地输出高电平,其它对地是0电平。依次类推。 当某管脚对地是高电平5V时,由于每条数据线的输出电流高达20mA,可以接5V的直流继电器,通过继电器的触点在去控制其它的设备,如电磁阀、电机等。图1是用打印机并行接口实现的继电器控制电路,此电路稍加修改即可用于其它设备的开关控制。 (2) 端口379H,379H的管脚见表2。 在计算机通电后的自然状态,379H端口的数据位第7位是0,其余每个数据位为1,即上述每个管脚对地(25脚)为高电平5V。即379H地址的内容为127(十进制)二进制码当只把某管脚(如10脚)通过500Ω的电阻接到25脚,则它所对应的数据位是0,其它的数据位不变,则379H的内容为63(十进制)二进制码当只把某管脚(如12脚)通过500Ω的电阻接到地25脚,则它所对应的数据位是0,其它的数据位不变,则379H的内容为95(十进制)二进制码次类推。 图2是用打印机并行接口实现的开关检测控制电路,当K断开时,379H为127(十进制),当K闭合时,379H为111(十进制)二进制数即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 windows.h #includeconio.h 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(un

文档评论(0)

fv45ffsjjI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档