中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

PLC论坛

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 PLC论坛 → 浏览主题: 关于数据类型的讨论
发表新帖 回复该主题
回帖:3个,阅读:360 [上一页] [1] [下一页]
* 帖子主题:

关于数据类型的讨论

分享到
5994
liaosun
文章数:1398
年度积分:50
历史总积分:5994
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2012/12/3 8:03:21
#0楼
网友Eaglesky:step7在数据类型上,如果用LAD的话,数据类型不合要求,程序是通不过的,但是同样的语句,转换成STL来写的话,就是可以通过的,也能得到编程需要的结果。
下面是我的回帖:
你说的情况是存在的,以比较指令为例,在梯形图中操作数的数据类型必须是INT,输入WORD数据类型的变量或十六进制格式的常数都不行。但是在STL中,下面的程序是没问题的:
      L     W#16#100
      L     345
      ==I  
      =     M      0.0
其原因在于累加器和没有定义数据类型的MW20一样,是一个没有数据类型的存储单元,W#16#100装入累加器后,它的数据类型属性就丢失了,操作系统将它视为INT格式的256来处理。但是上述程序是不能转换为LAD的。如果将 W#16#100改为256,就可以转换了。
再看一个例子,在STL中调用SFC14:
      CALL  "DPRD_DAT"
       LADDR  :=256
       RET_VAL:=MW6
       RECORD :=P#M 20.0 BYTE 20
输入参数LADDR的数据类型为WORD,输入INT常数256出错(用红色表示),需要改为16#100。如果搞不清楚数据类型,出了错也不知道错在哪里。
所以不管是LAD还是STL,对数据类型都得较真!!数据类型不是理论问题,而是一个实际问题。
此帖来自中华工控网工控博客
原文件地址:http://blog.gkong.com/more.asp?id=168218&Name=liaochangchu
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
21092
cgmguangming
文章数:4279
年度积分:716
历史总积分:21092
注册时间:2009/10/6
发站内信
西门子接触器(三)
2011国庆活动
发表于:2012/12/3 10:23:27
#1楼
同样的问题遇到过,也是请教了廖老师后明白的,在此再加强下印象!
发现异常解决之,才有进步与快乐!分享给大家会有更多收获与成长!
11764
gzg_00
文章数:9003
年度积分:53
历史总积分:11764
注册时间:2009/10/1
发站内信
发表于:2012/12/3 19:45:33
#2楼
支持廖老师
4798
576187527
文章数:2423
年度积分:50
历史总积分:4798
注册时间:2010/8/1
发站内信
发表于:2012/12/3 19:54:25
#3楼
看不懂呵呵
工控学堂推荐视频:

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

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

62.4004