首页 上一页 1 2 下一页 尾页

(已结束)工控PLC擂台第3期--PLC模拟量输入输出程序 点击:7635 | 回复:36



云锋

    
  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2010-09-10 16:19:14
楼主

现有压力变送器一只,量程0~6MPa,输出4~20mA,请选择CPU及AI/O模块,写出模拟量的输入输出程序,并对程序作出注释及说明。压力要求精确到0.01MPa。

PLC品牌不限。

工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。




siren

  • 精华:36帖
  • 求助:0帖
  • 帖子:426帖 | 6724回
  • 年度积分:0
  • 历史总积分:21846
  • 注册:2002年3月09日
发表于:2010-09-10 16:45:08
1楼

压力变送器有0-10V的和0-5V的,请选型是别只选4-20mA的了。

永不止步

  • 精华:12帖
  • 求助:0帖
  • 帖子:55帖 | 1460回
  • 年度积分:0
  • 历史总积分:12556
  • 注册:2009年4月10日
发表于:2010-09-10 16:50:41
2楼

选用西门子314CPU,并且选用SM331.SM332两种模块,具体订货型号如下表,输入输出均为4-20MA信号

采用PID调节控制压力平衡,由于FB41块比较大,故分两部分截图,具体I/O通道及程序步骤如下:

 

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-09-10 16:52:00
3楼

重新编辑有问题,请大家看13楼

                                                                                                                                                           

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2010-09-10 16:54:14
4楼
引用siren 的回复内容:

压力变送器有0-10V的和0-5V的,请选型是别只选4-20mA的了。




也可以用电压信号输入的模块来解题,但注意模拟量输出信号类型应与输入相同。

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 19:39:48
5楼
硬件配置表
硬件品牌 型号 数量 功能
siemens 电源模块 6ES7 407-0DA01-0AA0 1 电源模块 输出4A DC24V
siemens CPU312 6ES7 312-1AD10-0AB0 1 CPU312,16K 内存
siemens I/O模块323 6ES7 323-1BH01-0AA0 1 8 点输入24VDC;8 点输出24VDC 模块
siemens 模拟量 334 6ES7 334-0CE01-0AA0 1 模拟量输入4路模拟量输出2路
ifm压力传感器 ifm 0~6MPa 1 用于检测压力

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 20:01:40
6楼
I/O分配表
I0.0 手动
I0.1 自动
Q0.0 自动指示
Q0.1 手动指示
Q0.2 报警指示
PIW272 模拟量输入
PQW272 模拟量输出

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 20:35:28
7楼

OB35

Network 1 convert analog input to engineering unit

for the exanple .assume that there is a level transmitter at piw272 ,generating
a 4-20mA signal ,with 4mA=0 inches,and 20mA=600inches.

mineu must be set to the engineering unit value corresponding to 0 mA,which is-
12 inches .maxeu is set to the eu value corresponding to 20 mA,or600 inches.as
long as the analog input signal is between 4 to 20 mA,tank_level will be set to
the current height in inches.


CALL FB 100 , DB100    // 调模拟量输入量化程序,scale analog input to engineering units
raw :=PIW272
mineu:=0.000000e+000
maxeu:=6.000000e+006
valeu:=DB10,DBD0

 

Network 2  convert setting in engineering units to analog output

in this example ,assume that pqw272 connects to a control value that is fully
closed at 0 V output ,and fully open at 10 V output .valve_pos is a number
between 0 and 100 ,indicating the valve open percentage

 

CALL FB 101 , DB101     //调模拟量输出量化子程序,unscale fromeu range to analog output range
valeu:=DB10,DBD20
mineu:=0.000000e+000
maxeu:=1.000000e+002
raw :=PQW272

 

call fc 10                         //调用压力换算程序 ,press conversion


彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 20:51:29
8楼

FC 10 :press conversion


 

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 21:25:13
9楼
FB100 IN 的局部变量表
name data type address initial commet
raw int 0.0 0 value from analog input card ,0..27648 range
mineu real 2.0 0.000000e+000 engineering unit value corresponding to 0 raw
maxeu real 6.0 6.000000e+006 eu value corresponding to 27648 raw
FB100 OUT 的局部变量表
name data type address initial commet
valeu real 10.0 0.000000e+000 rw ,scaled to engineering units
FB100 TEMP 的局部变量表

name
data type address commet
rawdi Dint 0.0 raw ,as 32-bit integer
rawr Real 4.0 raw ,as floating point number
rngeu Real 8.0 eu range

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 21:39:31
10楼

FB100 :scale analog input to engineering units

 

converts integer analog input value from 0..27648 range to mineu..mineu range
.coversion equation is:

valeu =raw*(maxeu-mineu)/27648+mineu

Network 1 convert raw to real

 L #raw
ITD
T #rawdi
L #rawdi
DTR
T #rawr

 

Network 2  calcuate eu span

 L #maxeu
L #mineu
-R
T #rngeu

 

Network 3  convert rawr to eu range

 L #rawr
L 2.764800e+004
/R
T #rawr
L #rngeu
*R
T #rawr

 

Network 4 add eu offset

 L #rawr
L #mineu
+R
T #valeu

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 22:01:17
11楼
FB101 IN 的局部变量表
name data type address initial commet
valeu Real 0.0 0.000000e+000 eu value corresponding to 0 raw
mineu Real 4.0 0.000000e+000 eu value corresponding to 0 raw
maxeu Real 8.0 1.000000e+002 eu value corresponding to 27648 raw
FB101 OUT 的局部变量表
name data type address initial commet
raw Int 12.0 0 analog output value in 0..27648 range
FB101TEMP 的局部变量表


name

data type address commet
rngeu Real 0.0 eu span
rawr Real 4.0 unscaled value as floating point
rawdi   Dint unscaled value as 32-bit integer

彩虹

  • 精华:2帖
  • 求助:4帖
  • 帖子:54帖 | 1626回
  • 年度积分:8
  • 历史总积分:7586
  • 注册:2006年9月21日
发表于:2010-09-10 22:14:36
12楼

FB101:unscale fromeu range to analog output range

 

unscales from specified eu range to 0..27648 analog output range .unscale
equation is:

raw =(valeu -mineu)*27648/(maxeu-mineu)

if valeu>maxeu or valeu <(2*mineu-maxeu) then valeu may not be convertable to a
16-bit integer if this occurs ,the output of this function is undefined .the
output is also undefined if maxeu=mineu

 

Network 1 calculate eu span

L #maxeu
L #mineu
-R
T #rngeu

 

Network 2  remove offset a convert valeu to 0..1 span

 L #valeu
L #mineu
-R
T #rawr
L #rawr
L #rngeu
/R
T #rawr

 

Network 3 convert output to 0..27648 range

 L #rawr
L 2.764800e+004
*R
T #rawr

 

Network 4  convert to integer

 L #rawr
TRUNC
T #rawdi
L #rawdi
T #raw

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-09-11 10:12:08
13楼
使用的是ABB AC500系列。CPU选择的是PM581-ETH。模拟量输入/输出模块是AX521(4AI/AO),均配置成4-20mA。

1、硬件配置,输入输出申明

1.1 CPU



1.2 AX521以及申明


 

 



1.3 模拟量输入输出的A/D D/A转换值
AI


AO

2 程序,包括主程序,工程转换程序,滤波程序
2.1 主程序


2.2 滤波程序



2.3 工程值转换,包括输入和输出



3CWQZ

  • 精华:0帖
  • 求助:0帖
  • 帖子:13帖 | 821回
  • 年度积分:300
  • 历史总积分:4676
  • 注册:2003年1月21日
发表于:2010-09-11 14:34:34
14楼
不知楼上几位,用这样的一个系统代价是多少,

ye_w

  • 精华:21帖
  • 求助:1帖
  • 帖子:69帖 | 5217回
  • 年度积分:0
  • 历史总积分:46739
  • 注册:2002年4月17日
发表于:2010-09-11 23:30:36
15楼
引用3CWQZ 的回复内容:不知楼上几位,用这样的一个系统代价是多少,


当然不会简单如此一个程序就需要这样的配置。从应用本身来说,够用就行,不见得非要类似的配置。这主要是给大家一个编程的一种思维方式。

YZP3000

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 56回
  • 年度积分:0
  • 历史总积分:390
  • 注册:2004年12月09日
发表于:2010-09-12 21:43:27
16楼

CPU224XP+500欧精密电阻(将电压型输入改为电流型输入)+TP177A触摸屏

莫子辰

  • 精华:1帖
  • 求助:11帖
  • 帖子:20帖 | 939回
  • 年度积分:0
  • 历史总积分:5186
  • 注册:2010年5月12日
发表于:2010-09-12 22:57:21
17楼

顶一下

用西门子的多啊

涛声依旧

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 540回
  • 年度积分:5
  • 历史总积分:18865
  • 注册:2006年12月03日
发表于:2010-09-13 08:05:35
18楼
其实我支持用其他的,不用西门子。

云锋

  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2010-09-13 09:20:12
19楼
三菱、台达,国产PLC,大家都上啊。

CSUNXY62

  • [版主]
  • 精华:2帖
  • 求助:8帖
  • 帖子:159帖 | 2561回
  • 年度积分:0
  • 历史总积分:19247
  • 注册:2006年11月08日
发表于:2010-09-13 11:10:25
20楼

用西门子CPU222一台,EM235一台,就行了


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页