怎么选型模拟量输入输出模块 点击:2581 | 回复:2



广州铭业电子

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 6回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2018年3月16日
发表于:2018-03-30 11:07:56
楼主

  PLC由于其高可靠性、编程简单、通用性强、体积小、结构紧凑、安装维护方便等特点,而在产业控制中得到了广泛应用。PLC的模块一般分为以下几大类:开关量输进模块、开关量输出模块、模拟量输进模块、模拟量输出模块。在产业控制中特别是过程控制领域中需要采集和控制的模拟量比较多,因而对PLC的模拟量输进、输出模块需要的较多,而模拟量输进、输出模块比较贵,增加模拟量输进、输出模块就增加了本钱,降低了整个系统的性价比,限制了PLC的应用。本文提出了一种基于通讯的模拟量输进、输出模块的扩展方法力图解决这一题目。

  

  基于通讯的模拟量输进、输出模块的扩展方法

  

  (1)PLC模拟量输进模块扩展

  

  这里以一路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

  

  sbitIC4_S=P1^4;/*AD输进端口设置*/

  

  sbitIC4_D=P1^5;

  

  sbitIC4_C=P1^3;

  

  voidinput(void)

  

  {unsignedcharidatai;

  

  unsignedintidataresult=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;

  

  }

  

  MAX187的工作时序图见图2。

  

  图2MAX187的工作时序图

  

  (2)PLC模拟量输出模块扩展

  

  这里以一路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程序如下:

  

  图3D/A转换及放大器原理图

  

  #include

  

  #include

  

  sbitIC2_S=P1^0;/*DA输出端口设置*/

  

  sbitIC2_D=P1^1;

  

  sbitIC2_C=P1^2;

  

  voidoutput(unsignedintdat)

  

  {unsignedcharidatai=12;

  

  IC2_C=0;/*CS端为低电平*/

  

  while(i--)

  

  {IC2_S=0;/*时钟端产生时钟脉冲*/

  

  if(dat&0x0800)IC2_D=1;/*从串行数据输进端读进DA转换数据*/

  

  elseIC2_D=0;

  

  IC2_S=1;

  

  dat=dat<<1;

  

  }

  

  IC2_C=1;/*CS端为高电平*/

  

  }

  

  MAX531的工作时序图见图4。

  

  图4MAX531的工作时序图

  

  3、PLC与扩展模块之间的通讯接口及通讯协议

  

  (1)通讯接口

  

  以松下FP1系列PLC为例来阐述PLC与扩展模块之间的通讯,FP1系列PLC的通讯接口采用标准9芯RS232接口,它与扩展模块之间的接线如图5所示。

  

  图5扩展模块与PLC的通讯连接

  

  ·扩展模块的RXD端与PLC的TXD端联接,使扩展模块接收到PLC发出的数据;

  

  ·扩展模块的TXD端与PLC的RXD端联接,使扩展模块发出的数据被PLC接收到;

  

  ·扩展模块的地与PLC的SG端互联,使两者的工作基准地电平相同。

  

  上面采用的是RS232接口,PLC一次只能扩展一个模块。假如要扩展多个模块,可以采用RS485接口,现代的PLC一般都带有RS485接口。

  

  (2)通讯协议

  

  松下FP1系列PLC与扩展模块之间的通讯协议为松下公司专用的MEWTOCOL-COM协议,该协议采用异步通讯方式,其波特率有1200、2400、4800、9600、19200、38400、57600、115200bps等多种可选,且报文长度可变可固定。该协议格式分为命令消息(CommandMessage),正常响应消息(ResponseMessage-normal),出错响应消息(ResponseMessage-error)三种。

  

  其中:%为起始符,标记每一帧报文的开始;CR为结束符,标记每一帧报文的结束;

  

  AD为PLC的站地址,为两位16进制数,如00则表示第一台PLC;

  

  #、$、!标注该帧报文为何种类型。

  

  Commandcode为命令代码,如例1中的“RD”,表示读数据区。Responsecode为响应代码一般返回接收到的命令消息中的命令代码。Error(H)和Error(L)为出错代码,是两位16进制数,可根据其值在协议中查出错误的描述。

  

  Textcode为命令参数,如例1命令消息中“D0110501107”,“D”表示数据寄存器,“0110501107”表示第1105号至1107号,而在例1响应消息中,“630044330A00”则表示DT1105至DT1107中数据分别为6300、4433、0A00。

  

  BCC(H)和BCC(L)为前面字符串的BCC校验码的高、低位,为两位16进制数。其初值为0,然后从起始符开始与该帧报文中每一字节按位进行异或运算得到。

  

  例1:读取DT1105至DT1107中的数据的命令消息如下:

  

  %01#RDD011050110757CR

  

  若DT1105至DT1107中数据分别为6300、4433和0A00,PLC返回的响应消息如下:

  

  %01$RD630044330A0062CR

  

  那么,模拟量输进扩展模块与PLC通讯的报文可如下:

  

  %01#WDD01105011050fff32CR

  

  表示1号模拟量输进扩展模块把模拟量采样值0FFF存进PLC的第1105个数据寄存器

  

  模拟量输出扩展模块与PLC通讯的报文可如下:

  

  %01#RDD011060110F02CR

  

  表示1号模拟量输出扩展模块请求把PLC中第1106个数据寄存器保存的模拟量输出值读进。

  

  若DT1106中数据为0fff,PLC返回的响应消息如下:

  

  %01$RD0fff45CR

  

  1号模拟量输出扩展模块就把接收到的数字量0fff转换成模拟量输出。

  





lqy676769

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 128回
  • 年度积分:0
  • 历史总积分:107
  • 注册:2009年3月16日
发表于:2018-04-01 11:21:54
1楼

学习了,原来如此

电控小白新手

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 44回
  • 年度积分:139
  • 历史总积分:291
  • 注册:2018年5月08日
发表于:2018-05-14 16:26:32
2楼
fp-xhc60t可以用MEWTOCOL-COM协议吗

热门招聘
相关主题

官方公众号

智造工程师