- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PLC模拟量输入输出模块
P LC 模拟量输入、输出 块低成本扩展的一种方法
1 引言
可编程控制器( 以下简称PLC) 由于其高 靠性、编程简单、通用性强、
体积小、结构紧凑、安装维护方便等特点,而在工业控制中得到了广
泛应用。PLC 的模块一般分为以下几大类:开关量输入 块、开关量
输出 块、模拟量输入 块、模拟量输出模块。在工业控制中特别是
过程控制领域中需要采集和控制的模拟量比较多,因而对 PLC 的模
拟量输入、输出模块需要的较多,而模拟量输入、输出模块比较贵,
增加模拟量输入、输出模块就增加了成本,降低了整个系统的性价比,
限制了 PLC 的应用。本文提出了一种基于通讯的模拟量输入、输出
模块的扩展方法力图解决这一问题。
2 基于通讯的 拟量输入、输出模块的扩展方法
(1) 模拟量输入模块扩展
这里以一路12位模拟量输入为例,模拟信号以0~5V 标准电压
的形式送入信号输入端,应用12位 A/D 转换芯片 MAX 187实现模
数转换。MAX187是12位串行A/D ,具有较高的转换速度,采样频
率是75kHz,适用于较高精度的过程控制。考虑到实际工业现场中
的高频干扰,在采样信号送 MAX 187之前还使用了低通滤波器滤
波,如图1所示。
图1 低通滤波、放大器及A/D 转换
MAX 187具有内部参考电压,既4#管脚(REF)为 4.096V,因此,A/D
转换的全量程为4.096V 。而输入信号是0~5V,因此,要加一级运放
把0 ~5V 转换成0 ~4.096V 后送入 MAX 187 。AT89C52 的 P 1.3和
MAX 187的片选端(CS)相连、AT89C52的P 1.4和MAX 187的串行时钟
信号端(SCLK)相连、AT89C52的 P 1.5和 MAX 187的串行数据输出端
(DOUT)相连。模拟量采样的值存入单片机的内存中,再由单片机的
串行口传送给PLC 。A/D 转换的C51程序如下:
#include
#include
sbit IC4_S = P1^4; /* AD 输入端口设置*/
sbit IC4_D = P 1^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;i 12 ;i++)
{ result = result 1;
IC4_S = 0; /* 时钟端产生时钟脉冲*/
IC4_S = 1;
if( IC4_D ) result++; /* 串行数据输出端读入A/D 转换数据*/
}
IC4_C = 1; /* CS 端为高电平*/
pdat[ 1] = result;
}
MAX 187的工作时序图见图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
的P 1.0和 MAX531 的串行时钟信号端(SCLK)相连、AT89C52 的P 1.1
和 MAX531 的串行数据输入端(DIN) 相连、AT89C52 的 P 1.2 和
MAX531 的片选端(CS)相连。PLC 把要输出的模拟量通过串行口传送
给单片机,存入的内存中,再由单片机完成D/A 转换进行输出。A/D
转换的C51程序如下:
图3 D/A 转换及放大器原理图
#include
#include
sbit IC2_S = P1^0; /*DA 输出端口设置*
sbit IC2_
文档评论(0)