初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。

首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。

我们的目的是将char1-char14拼接成一个string。

第一种方式:第一步,将char放进数组。

 

相信大家都能看明白,但是我还是要解释解释

L取值2

T赋值到临时变量DBNO(INT)

OPN DB [#DBNO]获取DB块,这一句往后到结束符,所有的DB号均为#DBNO

CALL BLKMOV 引用BLKMOVE块,用来移动指针。

Any 所有类型

SRCBLK:=需要移动的指针(源)

RET_VAL:=状态(可以忽略)

DSTBLK:=目标区域

明白了,我们看一下DB块里的内容,得到的结果是下图:

很明显,已经成功对应了。那下一步就是转换字符串。

首先,第一字符串的第二位为14,为什么?第二位是有效长度定义。

接下来继续使用BLKMOVE,将数组里的内容移动到字符串里,当然,这个时候是从第三位开始。

结果如下:

整段程序如下:

当然,不要再OB1里添加临时变量~记得调用该函数。

这时候有人提出了疑问,为什么不直接MOVE,那我们修改一下程序看一下:

改完了,程序逻辑没错,看一下结果:

很明显,结果也没错,所以这两种方式都可以实现,为什么还会有第一种方法,大概是,以后会用得到这个数组吧。。。 

 但是不定义有效长度是万万不可的,这样以后用来比较字符串的时候可能会出现问题。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NS_Speak

避免各种踩坑,请多关注!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值