zhouyj1001
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看zhouyj1001的 主题 / 回贴
楼主  发表于: 2008-03-05 15:28
FC1里的程序是

    CALL  FC    2                    //一级排气温度一
      PIW    :="1_1WD"
      HIGH    :=2.000000e+002
      LOW    :=0.000000e+000
      OUT_REAL:=MD50
      OUT_INT :=MW54

FC2里的程序是
      L    #HIGH
      L    #LOW
      -R   
      L    2.764800e+004
      TAK 
      /R   
      T    #TEMP2

      L    #PIW
      ITD 
      DTR 
      L    #TEMP2
      /R   
      L    #LOW
      +R   
      T    #OUT_REAL
      RND 
      T    #OUT_INT


我的问题是:
1:在FC1里的":="符号是什么意思?
2:在FC1里的PIW  HIGH  LOW  等要不要在进行声明?它们在该块里是什么概念如何理解?
它们是全局变量,还是局部变量?
那其中所在的行具体什么意思?
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
1楼  发表于: 2008-03-05 16:35
1.“=”是给这些变量进行赋值;
2.PIW  HIGH  LOW  等是在FC2里面声明的,在FC1里不需要再进行声明;它们是局部变量,实现什么功能要看程序怎么编制了。


FC1换成LAD比较好看一些。
sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
2楼  发表于: 2008-03-05 16:41
1.先编辑FC2,未对这些变量进行声明前,变量为红色,程序不能编译;

sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
3楼  发表于: 2008-03-05 16:42
2.声明之后,变成正常了;

sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
4楼  发表于: 2008-03-05 16:44
3.将FC1用LAD编程,调用FC2

sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
5楼  发表于: 2008-03-05 16:45
4.对其进行赋值后,正常:

sjm213
有小知识,无大学问。
级别: 论坛版主

精华主题: 7 篇
发帖数量: 5200 个
工控威望: 7423 点
下载积分: 158809 分
在线时间: 3162(小时)
注册时间: 2007-11-21
最后登录: 2024-11-26
查看sjm213的 主题 / 回贴
6楼  发表于: 2008-03-06 09:57
      L    #HIGH                                      装载值2.000000e+002
      L    #LOW                                      装载值0.000000e+000
      -R                                                    两值相减,结果存在累加器1
      L    2.764800e+004                      装载值 2.764800e+004(这个数)进入累加器1,原累加器1的数存入累加器2
      TAK                                                将两个累加器的数值相护交换
      /R                                                    用累加器2除以累加器1
      T    #TEMP2                                  结果存在TEMP2

      L    #PIW                                        装载PIW值("1_1WD")
      ITD                                                  转换为双整数
      DTR                                                转换为浮点数
      L    #TEMP2                                  装载值TEMP2
      /R                                                    用PIW除以TEMP2
      L    #LOW                                        装载值0.000000e+000
      +R                                                    两值相加
      T    #OUT_REAL                            结果放在MD60
      RND                                                转换为双整数
      T    #OUT_INT                                结果传送至MW64



最终的结果就是给出计算公式: [PIW/(HIGH-LOW)]×2.764800e+004+0.000000e+000
本帖最近评分记录:
  • 下载积分:+2(uthman) 热心助人!
    sjm213
    有小知识,无大学问。
    级别: 论坛版主

    精华主题: 7 篇
    发帖数量: 5200 个
    工控威望: 7423 点
    下载积分: 158809 分
    在线时间: 3162(小时)
    注册时间: 2007-11-21
    最后登录: 2024-11-26
    查看sjm213的 主题 / 回贴
    7楼  发表于: 2008-06-27 03:05
    引用
    引用第9楼jjj_1216于2008-06-26 22:16发表的  :

    关注这个的回贴。



    可以看看这里:

    http://www.ymmfa.com/bbs/read.php?tid-10601.html