请教各位一个模拟量信号转换的问题?急! 点击:1576 | 回复:12



毛队长

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 13回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年5月09日
发表于:2005-11-08 19:54:00
楼主
下面是我用的PLC的型号:PS307 5A(6ES7307-1EA00-0AA0)
                       CPU312 (6ES7312-1AD10-0AB0)
                       DI8/DO8*DC24V 0.5A (6ES7323-1BH10-0AA0) 
                       AI4/AO2*8/8bit (6ES7334-0CE01-0AA0)
                       AI4/AO2*8/8bit (6ES7334-0CE01-0AA0)
传感器有压力计,流量计,氧分析仪。它们的输出信号都是4-20MA的电流信号。
以流量计为例来说吧,它的流量范围是3-30立方米每小时,我现在要把它输入到
模拟量模块当中进行控制,并且要进行一些比较(比如:当流量大于多少立方米
的时候我要进行哪些运算),我应该如何实现我的模拟量转换啊,这样既可以使
模拟量模块识别传感器的信号,又可以方便的进行运算??

我是一个PLC新手,希望得到各位大虾的帮助,急用。。拜托各位,请指教!



如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-11-08 20:01:00
1楼
可以用fc105/fc106转换成实际量程

xueqianban

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 66回
  • 年度积分:0
  • 历史总积分:88
  • 注册:2005年11月13日
发表于:2005-11-08 20:08:00
2楼
就是啊

毛队长

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 13回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年5月09日
发表于:2005-11-08 20:29:00
3楼
我用这两个模块的话CPU就亮红灯,显示系统有问题。所以就想自己转换,请教你能告诉我如何转换么?

毛队长

  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 13回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2004年5月09日
发表于:2005-11-08 20:36:00
4楼
不过用浮点数运算就没有这样的提示,可是我不知道如何转换才是正确的,希望论坛的各位大哥指教指教啊。。急用!!

ih std

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 37回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2004年4月03日
发表于:2005-11-08 20:55:00
5楼
//1  
 A(    
      A(    
      L     #AI_INT
      ITD   
      T     #DP1
      SET   
      SAVE  
      CLR   
      A     BR
      )     
      JNB   _001
      L     #DP1
      DTR   
      T     #DP2
      SET   
      SAVE  
      CLR   
_001: A     BR
      )     
      JNB   _002
      L     #DP2
      L     #OFFSET1
      -R    
      T     #DP2
_002: NOP   0
//2
 A(    
      L     #DP2
      L     2.764800e+004
      /R    
      T     #DP3
      AN    OV
      SAVE  
      CLR   
      A     BR
      )     
      JNB   _003
      L     #DP3
      L     #MAX_VALUE
      *R    
      T     #DP4
_003: NOP   0
//3
 A(    
      L     #DP4
      L     #MAX_VALUE
      >=R   
      )     
      JNB   _004
      L     #MAX_VALUE
      T     #DP4
_004: NOP   0
//5 A(    
      L     #DP4
      L     #MIN_VALUE
      <=R   
      )     
      JNB   _005
      L     #MIN_VALUE
      T     #DP4
_005: NOP   0
//6
  L     #DP4
      T     #OUTPUT_REAL
      NOP   0
//AI_INT为你的输入信号
//OUTPUT_REAL为你需要的数值
//MIN_VALUE为下限值
//MAX_VALUE为上限值

夏天快到了

  • 精华:1帖
  • 求助:0帖
  • 帖子:18帖 | 69回
  • 年度积分:0
  • 历史总积分:189
  • 注册:2002年6月08日
发表于:2005-11-09 15:30:00
6楼
肯的是你对FC105/106没有很好的理解,特别是端口的格式搞错了

我不懂PLC,我不会武功

  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 16回
  • 年度积分:0
  • 历史总积分:63
  • 注册:2005年10月20日
发表于:2005-11-10 00:58:00
7楼
激情大哥说的对,用fc105/fc106就可以了~~只不过要再加一步[b]转化成浮点数[/b]才可以

ih std的程序没怎么看。。呵呵~~只爱看梯形图~~不过最后的输出是REAL型的话应该是没问题的

德事张祥亚

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 31回
  • 年度积分:0
  • 历史总积分:34
  • 注册:2006年3月10日
发表于:2005-11-10 13:18:00
8楼
ha ha  

jsjul

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 15回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2005年4月30日
发表于:2005-11-10 17:33:00
9楼
FUNCTION_BLOCK FB40

VAR_INPUT
    Sim: BOOL;
    SimWert: REAL;
    UG: REAL;
    OG: REAL;
    Zeit: REAL;
    Bewertung: REAL;
END_VAR

VAR_IN_OUT
    AE: REAL;
    Ungefiltert: REAL;
    Gefiltert: REAL;
    Bewertet: REAL;
END_VAR

(* Simulation der Eing&auml;nge *)
BEGIN
    IF Sim = TRUE THEN
       AE := (SimWert * 276.48); (* Vorgabe im OP im Wertebereich 0..100 *)

END_IF;

Ungefiltert:= ((AE / 276.48) - UG) / (OG - UG) * 100;
Gefiltert := Gefiltert + (Ungefiltert-Gefiltert) / (Zeit * 10);
Bewertet:=Gefiltert * Bewertung / 100;
IF (Gefiltert<-1000) OR (Gefiltert>1000) THEN (*Bereichseinschr&auml;nkung, weil bei Filterzeit = 0 durch Null geteilt wird *)
    Gefiltert := 0.0;
    Ungefiltert := 0.0;
END_IF;
END_FUNCTION_BLOCK

jsjul

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 15回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2005年4月30日
发表于:2005-11-10 17:42:00
10楼
FUNCTION_BLOCK FB40

VAR_INPUT
    Sim: BOOL;
    SimWert: REAL;
    UG: REAL;
    OG: REAL;
    Zeit: REAL;
    Bewertung: REAL;
END_VAR

VAR_IN_OUT
    AE: REAL;
    Ungefiltert: REAL;
    Gefiltert: REAL;
    Bewertet: REAL;
END_VAR

(* Simulation der Eing&auml;nge *)
BEGIN
    IF Sim = TRUE THEN
       AE := (SimWert * 276.48); (* Vorgabe im OP im Wertebereich 0..100 *)

END_IF;

Ungefiltert:= ((AE / 276.48) - UG) / (OG - UG) * 100;
Gefiltert := Gefiltert + (Ungefiltert-Gefiltert) / (Zeit * 10);
Bewertet:=Gefiltert * Bewertung / 100;
IF (Gefiltert<-1000) OR (Gefiltert>1000) THEN (*Bereichseinschr&auml;nkung, weil bei Filterzeit = 0 durch Null geteilt wird *)
    Gefiltert := 0.0;
    Ungefiltert := 0.0;
END_IF;
END_FUNCTION_BLOCK

成都一茶

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 101回
  • 年度积分:0
  • 历史总积分:218
  • 注册:2004年11月10日
发表于:2005-11-11 16:36:00
11楼
不错,就是用FC105哈

autoyx.com

  • 精华:0帖
  • 求助:0帖
  • 帖子:32帖 | 634回
  • 年度积分:0
  • 历史总积分:882
  • 注册:2005年9月27日
发表于:2005-11-12 15:47:00
12楼
用PLC做模拟量太难了,PLC主要用于顺控,我认为你选型方向有误.
应选DCS或基于PC的控制系统.
到我网站看看:  http://www.tiasky.com/
总价格大约为 Siemens PLC价格的一半.

热门招聘
相关主题

官方公众号

智造工程师