找回密码
 请使用中文注册
查看: 7|回复: 0

数据记录SCL编程

[复制链接]
阅读字号:

29

主题

186

回帖

405

积分

入门维修师

积分
405
发表于 半小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?请使用中文注册

×
数据记录SCL编程
  前一段时间,公司同事到我这里来想我做几个小程序功能,一个是数据记录,就是说当需要记录数据时,启动一个记录数据的条件,然后将数据记录在一个数据区域,带数据记录满了存储区,需要的记录数据满的提示输出,同时,记录的数据区是重复使用的,也就是说数据区一旦记录满后的下一个数据,将会覆盖第一记录的数据地址中。另外一个问题是,需要计算一个字内(16位数据的奇和偶数)的和,与1做“与”计算,这个帖子暂时不展开验证。
  编程思路,首先需要创建一个数据块的数组,为说明问题,验证中创建10个INT数据,当启动数据记录开始时,通过数据数组的下标数据,实现数据地址的偏移,当数据记录大于10个时,输出数据记录满的输出提示。
程序:
1)  打开portal软件创建一个测试项目,新建一个FB1作为数据记录函数块,定义可能需要的外部接口变量,图示:
2)  因为需要做一个数据记录的传送触发信号,此处创建一个输入上升沿脉冲,作为数据记录的触发条件,然后,利用这个脉冲给数据传送的变量地址偏移做下标偏移,图示:
3)  创建一个数据块,DB1,新建需要测试的数据,图示:
4)  在OB1中调用FB1,编译没有错误后,启动仿真器验证,图示:
打开测试必要的数据块监控数据记录情况。
在源数据侧写入数据“10”,启动数据传送控制位 = 1.

数据被准确记录在事先定义好的数据数组的第一个地址中。
5)  再次将源输入数据值由10变更为20,用于区别,再次触发数据传送,图示:
第二个数据也被记录进来了,连续测试了10多次,数组下标能够重新覆盖,达到原编程思路要求,将这个测试程序发给同事,让同事根据自己的需要着情修改后调用,也将这个程序分享给大家。

您需要登录后才可以回帖 登录 | 请使用中文注册

本版积分规则

QQ|手机版|家电维修论坛 ( 蜀ICP备19011473号 川公网安备51102502000164号 )|网站地图|网站地图

GMT+8, 2026-8-27 12:09 , Processed in 0.177463 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表