您现在所在的是:

PLC论坛

回帖:10个,阅读:5087 [上一页] [1] [2] [下一页]
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/15 10:50:41
#0楼
我用的plc的cpu是313c的,313c的特点是cpu本身集成了模拟量输入输出口,最近在做一个实验,是让模拟量模块输出4-20ma的电流,从程序中随便输入一个0-20之间的值,然后从输出口输出这个值,再用这个值去控制变频器,研究了很多天了,plc的模拟输出口为什么一直就是没有电流输出呢?模拟I/O模块的输出方式已经改成电流的形式了,还是不行。麻烦各位高手给指点一下,最好给个梯形图程序看看,谢谢了,很着急用[/color][/color]
1101
wantao0916
文章数:73
年度积分:54
历史总积分:1101
注册时间:2007/3/28
发站内信
发表于:2013/3/15 11:41:33
#1楼
做测试的话,可以再OB1里面写一个MOV指令,西门子模拟量输出4-20MA对应的是0-27648的值,你可以随便输出一个值做下测试,如果运行正常但是检测不到值,那就需要检查外围的接线了。
www.huabo-plc.com
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/15 14:52:34
#2楼
外围需要接线吗?在输出口用电压表不是可以直接测得啊,真的需要接线吗
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/15 16:43:25
#3楼
附件中是我写的程序,已经无错编译并下载斤plc中,运行后,打开监视,有数据显示,但是用万能表测输出口电流还是没有啊,到底是怎么回事呢?
附件
附件
15521
xuhuifox
文章数:2908
年度积分:438
历史总积分:15521
注册时间:2005/3/25
发站内信
发表于:2013/3/15 19:24:15
#4楼
这个程序应该没问题,你在程序中将MW10赋值(4--20),将会有相对应的模拟量的值输出到第一个模拟量输出端
附件:
[本地下载]
                 一切为了生活
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/15 22:09:44
#5楼
太感谢你了,你写的程序真的太高明了,我也就只能写个简单点的程序,你看着我写的那个程序下到plc中,输出口会有电流吗?我测过了,是没有呢,那是什么原因呢
37978
cvlsam 版主
文章数:12476
年度积分:589
历史总积分:37978
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2013/3/15 22:50:07
#6楼
以下是引用scp092013/3/15 22:09:44的发言:
太感谢你了,你写的程序真的太高明了,我也就只能写个简单点的程序,你看着我写的那个程序下到plc中,输出口会有电流吗?我测过了,是没有呢,那是什么原因呢
输出线性化应使用Fc106.

Good Luck~
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/16 9:52:19
#7楼
哦?我用FC106不会呢,我试过了,不行,你能不能给我写个程序看看看啊,谢谢了
15521
xuhuifox
文章数:2908
年度积分:438
历史总积分:15521
注册时间:2005/3/25
发站内信
发表于:2013/3/16 12:42:03
#8楼
以下是引用scp092013/3/15 22:09:44的发言:
太感谢你了,你写的程序真的太高明了,我也就只能写个简单点的程序,你看着我写的那个程序下到plc中,输出口会有电流吗?我测过了,是没有呢,那是什么原因呢
我看了FC105的程序,它是将一个模拟量输入量-27648----+27648(0---+27648)的量转换到所需要的范围(如:0---100)    你的程序的输出值是4--20   那么输出到模拟量的值是可以忽略不计的!!
你可以修改FC105的程序来达到你的目的,以下是FC105的程序,希望对你有帮助!!


FC105 - <离线>
"SCALE" Scaling Values
名称: SCALE 系列: CONVERT


名称    数据类型     地址           注释
+++++++++++++++++++IN++++++++++++++++++++++++
IN      Int       0.0         input value to be scaled
HI_LIM  Real      2.0          upper limit in engineering units
LO_LIM  Real      6.0         lower limit in engineering units
BIPOLAR Bool      10.0        1=bipolar; 0=unipolar
+++++++++++++++++++OUT++++++++++++++++++++++
OUT     Real       14.0        result of the scale conversion
+++++++++++++++++++TEMP++++++++++++++++++++++++
IN_REAL Real       0.0 input value as a REAL number
K1      Real       4.0 low limit for input value
K2      Real       8.0 high limit for input value
SPAN    Real       12.0 HI_LIM - LO_LIM
TEMP1   Real       16.0 temporary result
+++++++++++++++++++RETURN+++++++++++++++++++++++
RET_VAL Word       12.0

//FC105   SCALING VALUES
//set K1 and K2 constants based upon BIPOLAR

      SET                               // if(BIPOLAR=0)
     A     #BIPOLAR                    //   .
     JC    EL01                        // {
     L     0.000000e+000               //   K1=0
     T     #K1                         //     .
     JU    EI01                        // } else {
EL01: L     -2.764800e+004              //   K1=-27648.0
     T     #K1                         //     .
EI01: NOP   0                           // }
     L     2.764800e+004               // K2=+27648.0
     T     #K2                         //   .

// convert input (IN) to real

     L     #IN                         // ACC1=IN
     ITD                               // convert to double integer
     DTR                               // convert to real
     T     #IN_REAL                    // IN_REAL-IN as a real

// determine SPAN = HI_LIM - LO_LIM

     L     #HI_LIM                     // SPAN=HI_LIM-LO_LIM
     L     #LO_LIM                     // .
     -R                                // .
     T     #SPAN                       // .

// If the input value is outside the K1 and K2 range, the output
// is clamped to the nearer of either the LO_LIM or the HI_LIM
// and an error is logged. If the input value is exactly at a limit the
// output will be set to the computed limit with no error returned.
//     changed 2/14/00 by ERI per RQ210693
     L     #IN_REAL                    // if(IN_REAL<K1)
     L     #K1                         //   .
     >=R                               //   .
     JC    EL02                        // {
     L     8                           //   error
     T     #RET_VAL                    //     .
     L     #LO_LIM                     //     ACC1=LO_LIM
     T     #OUT                        //   OUT=ACC1
     JU    FAIL                        //   error
EL02: POP                               // } else {
     L     #K2                         //   if(IN_REAL>K2)
     <=R                               //     .
     JC    EI04                        //   {
     L     8                           //     error
     T     #RET_VAL                    //       .
     L     #HI_LIM                     //       ACC1=HI_LIM
     T     #OUT                        //     OUT=ACC1
     JU    FAIL                        //     error
EI04: NOP   0                           //   }
     NOP   0                           // }

// scale the input

     L     #K2                         // TEMP1=K2-K1
     L     #K1                         //   .
     -R                                //   .
     T     #TEMP1                      //   .
     L     #IN_REAL                    // IN_REAL-K1
     L     #K1                         //   .
     -R                                //   .
     L     #TEMP1                      // divide by TEMP1
     /R                                //   .
     L     #SPAN                       // multiply by SPAN
     *R                                //   .
     L     #LO_LIM                     // add LO_LIM
     +R                                //   .
     T     #OUT                        // OUT=scale(IN_REAL)

// set BR bit : no error-set BR bit to 1; with error-set BR bit to 0.

     L     0                           // return error code 0
     T     #RET_VAL
     SET                               // RLO = 1 (NO ERROR)
     JU    SVBR                        //
FAIL: CLR                               // RLO = 0 (ERROR)
SVBR: SAVE                              // BR = RLO
                 一切为了生活
740
scp09
文章数:16
年度积分:50
历史总积分:740
注册时间:2013/3/15
发站内信
发表于:2013/3/17 21:34:41
#9楼
怎样去测模拟量输出模块的电流呢

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006