西门子STEP7、博图里的数据块(DB)编址规则

32 篇文章 18 订阅
23 篇文章 7 订阅

最近在为PLC-Recorder开发DB变量导入功能时,仔细分析了STEP7和博图里导出的数据块的结构(导出的只是结构,没有偏移地址),并重点分析了偏移地址计算的规则,否则,没法算出变量的地址,都是白扯了。西门子的DB块内的变量除了前篇文章里那些可能的数据类型,还有用户数据类型(UDT)和一些特殊的类型(这在文献里很难找到,软件也就没法处理了)。DB块内的变量是有结构区分的,并且层级可能很深,UDT可以算作层级类型之一,还包括STRUCT、ARRAY(数组),都需要特殊处理,否则地址计算就会出错。对于UDT,由于里面可能嵌套其他UDT、结构,因此,地址计算的程序必须具有递归计算的功能(我这个编程门外汉对于递归是很敬仰的,竟然在这里也实现了递归功能)。总结一下几个核心的规则,分享给大家:

1、从编程软件导出DB源代码要包括引用,这样,所有必要的UDT都会在DB前面列出结构,否则你还要让用户去导出UDT,用户会立马放弃你这个功能。

   

2、在同一结构层级内,如果变量长度是偶数,则地址从偶数字节开始。如果长度非偶数(只有单字节变量和位符合这个条件),则从紧挨着的字节开始。

3、在同一结构层级内,同类型的变量地址可以连续计算,比如位变量,确定了第一个位变量的起始地址后(比如10.0),后面的就可以连续计算,比如:10.1、10.2...

4、每个结构(包括数组、STRUCT、UDT等)增加一个层级,其变量都是从偶数字节开始,结构退出后的下一个变量起始地址也是偶数。

5、字符串地址从偶数字节开始,但是下一个变量(比如位)可能从非偶数字节开始。

DB块的导入,只是PLC-Recorder的一个细微功能,没想到费了很大的劲。希望朋友们多向工控、工艺的朋友们推荐咱们的数据采集、记录、分析软件,在可能的场合,多去替代那些昂贵的进口软件,软件详情请见连接

 

2021年2月4日

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
博图是一种用于存储和管理数据的设备,它通常包含多个db,每个db都存储着一定量的数据。清零db的操作意味着将其中存储的数据全部清除,恢复为初始状态。 要将整个db数据清零,可以按照以下步骤进行: 1. 进入博图设备的管理界面或控制台,在登录认证通过后获取管理员权限。 2. 找到相关的db清零功能选项。根据博图设备的型号和版本不同,其管理界面可能会有不同的布局和选项名称。 3. 在清零功能选项中,选择整个db进行清零操作。可能会有单个db清零和批量db清零两种选择,根据需要选择相应的选项。 4. 在确认清零操作之前,最好先备份和导出存储在db中的重要数据。因为清零操作会将db中的所有数据完全删除,无法恢复。 5. 执行清零操作。可能需要进行一些额外的确认步骤,如输入密码或执行确认操作,以确保清零操作的安全性。 6. 等待清零操作完成。根据设备的性能和db的大小不同,清零操作的时间可能会有所不同。 7. 清零操作完成后,db中的数据将会被彻底清除,恢复为初始状态。现在可以开始重新使用这些db进行存储和管理数据。 需要特别注意的是,清零操作是不可逆的,一旦执行,所有的数据都将被删除。因此,在执行该操作之前,务必确保已备份重要的数据,并确认不再需要这些数据。同样,清零操作也可能会导致设备的工作负载加重,请在适当的时间进行清零操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值