稍微方便一些的模拟量量程转换的方法

已锁定

四书五经

  • 帖子

    762
  • 精华

    58
  • 被关注

    30

论坛等级:侠圣

注册时间:2005-12-23

普通 普通 如何晋级?

稍微方便一些的模拟量量程转换的方法

2411

18

2008-10-21 15:02:36

以前是做水泥行业的,一个水泥线基本上都有200个左右的模拟量,每个模拟量调用FC105很烦,就用STL写了一函数,结合相应的DB块,还是能减少些工作量,呵呵
首先建一个结构
STRUCT
PV : REAL ;//转换后的值
SCALE_HIGH : REAL ;//量程上限
SCALE_LOW : REAL ;//量程下限
ALM_HIGH : REAL ;//报警上限
ALM_LOW : REAL ;//报警下限
END_STRUCT
在DB块中根据模拟量的个数,建立若干个这样结构的变量
编写STL程序如下:
L P#512.0//模拟量的I/O地址
LAR1
L P#0.0
LAR2
L 200//模拟量的个数
LOP1: T LW 0//模拟量个数暂存
L PIW[AR1,P#0.0]
T LW 2//获取模拟量的值,并暂存
+AR1 P#2.0//指针加2

OPN "AIDB"//打开数据块
L DBD [AR2,P#4.0]//获取量程上限值
T LD 4
L DBD [AR2,P#8.0]//获取量程下限值
T LD 8

CALL "SCALE"//调用FC105
IN :=LW2
HI_LIM :=LD4
LO_LIM :=LD8
BIPOLAR:=FALSE
RET_VAL:=LW12
OUT :=LD16

L LD 16//获取FC105的返回值
T DBD [AR2,P#0.0]//送到DB块中的PV值
+AR2 P#20.0//DB指针加20

L LW 0//为LOOP循环用
LOOP LOP1//循环
呵呵,可以省些重复劳动,不知道对大家有没有帮助
稍微方便一些的模拟量量程转换的方法 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54703条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。