回复:应用探讨——PLC 数据类型探讨

  • 帖子

    0
  • 精华

    3
  • 被关注

    9

论坛等级:新手

注册时间:2008-07-01

普通 普通 如何晋级?

发布于 2013-10-16 23:54:08

9楼

从根本上讲,PLC技术是以计算机技术的发展为依托的,而高级语言的变化和发展恰恰体现和运用了计算机技术的进步,所以PLC的设计和运行机理,也参照了高级语言的制定规则以及使用方法。
简单的以非安全数据类型的C语言举例说明,如C语言中如果在一个函数的声明中不显示地声明返回值的类型,它就默认返回整形。具体这个函数能不能实现你原本的预期,返回一个你希望看到的“数据类型”,那就要取决于编译器的“心情”。
在程序中,不建议使用隐式声明,一方面它会有存在“非预期值”的隐患,另一方面也不利于程序清楚地表达我们的意图。
再有函数的返回值问题,不管FC执行的怎么样,多少都要给个确定的值,不管是1是0还是-1,还是多少多少,这有点像人家借了你的钱,到了原本约定还钱的日子,却什么动静都没有,不见钱,也不见句话,这就闹心了!

而PLC中,如数据传送指令,在S7-200系列中,传送命令有,MOVB,MOVW,MOVD,对不同数据长度的数据类型作处理,而到了S7-300/400系列,只有一个MOVE命令,其输入IN对应数据类型有,BYTE,WORD,DOUBLE WORD,在STL模式下,我们知道和MOVE的功能相同的指令是装载L和传送T,其中关键是要用到一个叫“累加器”的类似“中间人”“中介”的32位寄存器,为什么是32位?因为它像个大口袋一样,可以把BYTE,WORD,DOUBLE WORD统统装得下。当把一个双字D传送入一个字W,由于内存地址溢出,这时W中的数据是不是我们原本想要传送的D中的数据,这就要看原本数据的大小了,这里我们可以看出,在这里数据的类型(或者说叫长度)取决于对这个数据操作时存储它使用的存储空间有多大。

数据类型使用中常出现类型不匹配的现象,个人认为类型匹配在某种程度上讲,就是存储空间长短大小的匹配,也常常伴随着“边界”问题。

其实,计算机语言中的很多东西,主要是一些想法,我们也可以像TIA Portal中的项目移植一样,也移植到PLC使用中,多少总归有些益处吧。

一口之言,仅供参考。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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