PLC模拟量输入..doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLC模拟量输入.

PLC模拟量输入、输出模块低成本扩展的一种方法 1 引言 可编程控制器(以下简称PLC)由于其高可靠性、编程简单、通用性强、体积小、结构紧凑、安装维护方便等特点,而在工业控制中得到了广泛应用。PLC的模块一般分为以下几大类:开关量输入模块、开关量输出模块、模拟量输入模块、模拟量输出模块。 在工业控制中特别是过程控制领域中需要采集和控制的模拟量比较多,因而对PLC的模拟量输入、输出模块需要的较多,而模拟量输入、输出模块比较贵,增加模 拟量输入、输出模块就增加了成本,降低了整个系统的性价比,限制了PLC的应用。本文提出了一种基于通讯的模拟量输入、输出模块的扩展方法力图解决这一问 题。 2 基于通讯的模拟量输入、输出模块的扩展方法 (1) 模拟量输入模块扩展 这 里以一路12位模拟量输入为例,模拟信号以0~5V标准电压的形式送入信号输入端,应用12位A/D转换芯片MAX187实现模数转换。MAX187是 12位串行A/D,具有较高的转换速度,采样频率是75kHz,适用于较高精度的过程控制。考虑到实际工业现场中的高频干扰,在采样信号送MAX187之 前还使用了低通滤波器滤波,如图1所示。 图1 低通滤波、放大器及A/D转换 MAX187 具有内部参考电压,既4#管脚(REF)为 4.096V,因此,A/D转换的全量程为4.096V。而输入信号是0~5V,因此,要加一级运放把0~5V转换成0~4.096V后送入 MAX187。AT89C52的P1.3和MAX187的片选端(CS)相连、AT89C52的P1.4和MAX187的串行时钟信号端(SCLK)相 连、AT89C52的P1.5和MAX187的串行数据输出端(DOUT)相连。模拟量采样的值存入单片机的内存中,再由单片机的串行口传送给PLC。 A/D转换的C51程序如下: #include #include sbit IC4_S = P1^4; /* AD输入端口设置*/ sbit IC4_D = P1^5; sbit IC4_C = P1^3; void input(void ) { unsigned char idata i; unsigned int idata result=0x0000; IC4_C = 0; /* CS端为低电平*/ for(i=0;i12;i++) { result = result 1; IC4_S = 0; /*时钟端产生时钟脉冲*/ IC4_S = 1; if( IC4_D ) result++; /*从串行数据输出端读入A/D转换数据*/ } IC4_C = 1; /* CS端为高电平*/ pdat[1] = result; } MAX187的工作时序图见图2。 图2 MAX187的工作时序图 (2) 模拟量输出模块扩展 这 里以一路12位模拟量输出为例,设计中将采用12位D/A转换芯片MAX531来实现数摸转换。我们在MAX531的输出端接运算放大器,将模拟输出调节 至0~5V,输出部分的硬件电路如图3所示。这里,MAX531是12位串行D/A,具有较高的转换速度, MAX531具有内部参考电压,既10#管脚(REFOUT)为2.048V,因此, D/A转换的全量程为2.048V。而输出信号一般要求是标准的0~5V,因此,要加一级运放把MAX531输出的0~2.048V信号转换成 0~5V信号。AT89C52的P1.0和MAX531的串行时钟信号端(SCLK)相连、AT89C52的P1.1和MAX531的串行数据输入端 (DIN)相连、AT89C52的P1.2和MAX531的片选端(CS)相连。PLC把要输出的模拟量通过串行口传送给单片机,存入的内存中,再由单片 机完成D/A转换进行输出。A/D转换的C51程序如下: 图3 D/A转换及放大器原理图 #include #include sbit IC2_S = P1^0; /*DA输出端口设置*/ sbit IC2_D = P1^1; sbit IC2_C = P1^2; void output(unsigned int dat) { unsigned char idata i = 12; IC2_C = 0; /* CS端为低电平*/ while( i-- ) { IC2_S = 0; /*时钟端产生时钟脉冲*/ if ( dat 0x0800 ) IC2_D =1; /*从串行数据输入端读入DA转换数据*/ else IC2_D =0; IC2_S = 1; dat = dat 1; } IC2_C=1; /* CS端为高电平*/ } MAX531的工作时序图见图4。 图4 MAX531的工作时序图 3 PLC与扩展模块之间的通信接口及通信协议 (1) 通信接口

文档评论(0)

xznh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档