施耐德M218PLC的模拟量如何读取 点击:6056 | 回复:6



    
  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 7回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2005年8月02日
发表于:2012-08-28 11:45:01
楼主
施耐德的PLC M218系列内置模拟量模块,如何编程从里面读取数据



云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2012-08-28 15:49:07
1楼
手头上有218相关手册么?先看看。。。

余 辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3350帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2012-08-28 16:30:40
2楼
M218是一体机   怎么会内置模拟量   外配的吧

tomyi

  • 精华:0帖
  • 求助:1帖
  • 帖子:21帖 | 233回
  • 年度积分:0
  • 历史总积分:598
  • 注册:2002年10月30日
发表于:2012-11-12 10:02:20
3楼

可以自己写一个:

-- AI转工程值

FUNCTION AItoP : real
VAR_STAT
 En: bool;
END_VAR
VAR_INPUT
 iAI: int;
 iPLow: int;
 iPHigh: int;
 rPLow: real;
 rPHigh: real;
END_VAR
VAR_OUTPUT
 rVal: real;
END_VAR
VAR
 iTmp: int;
 rTmp1: real;
 lTmp1: lint;
 lTmp2: lint;
 rTmp2: real;
END_VAR

 

-- ST程序

lTmp1:=INT_TO_LINT(iAI-iPLow);
lTmp2:=INT_TO_LINT(iPHigh-iPLow);
rTmp1:=LINT_TO_REAL(lTmp1);
rTmp2:=LINT_TO_REAL(lTmp2);
rVal:=rTmp1/rTmp2*(rPHigh-rPLow)+rPLow;

 

 

飞扬在天

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 125回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2006年5月16日
发表于:2013-04-07 20:01:09
4楼

在GVL中直接声明变量就可以了,

比如:    PressureActual-1     AT      %IW1    :   INT     ;        // 压力实际值1

                 PressureActual-2    AT      %IW2    :   INT     ;        // 压力实际值2

 

飞扬在天

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 125回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2006年5月16日
发表于:2013-04-07 20:02:39
5楼

这样,变量PressureActual-1和 PressureActual-2 显示的就是两个内置模拟量输入通道的实际数值。

希望对你有所帮助。

飞扬在天

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 125回
  • 年度积分:0
  • 历史总积分:296
  • 注册:2006年5月16日
发表于:2013-04-07 20:05:16
6楼

哦,写错了。应该是这样子的:

 PressureActual-1     AT      %IW2    :   INT     ;        // 压力实际值1

  PressureActual-2    AT      %IW3    :   INT     ;        // 压力实际值2

 

 


热门招聘
相关主题

官方公众号

智造工程师