请教。我用定时器,每增加2秒把一组固定的数据依次送到另一组地址依次递增的寄存器里去,除了依次逐条写块传送程序以外,有没有更简单的方法来完成?比如我把4.9.7.这三个数按时间递增逐次送到VW200-vw600里,每次按3个数据为一组用块传送指令送,直到结束。谢谢!
问题补充:
你好,这三个数据是同时产生的。
最佳答案
看了你的描述,你说的3个数据,按时间间隔方便写入到地址VW200开始的连续地址中,请问这3个源数据是同步产生的?还是有间隔?
如果有间隔,这个好办。如果没有间隔,是随机数据?3个数据是如何产生的,这个是问题的关键。
我在论坛上有一个外部控制数据存储的贴子,存储可以参考,http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1395477&b_id=64&s_id=83&num=11#anch
补充问题回复:
如果是同时产生的,那么,可以指定3个数据的通道指定进行数据存放。如数据1存放在通道1,数据2存放在通道2.
其中一个通道程序:
LD M0.0 //记录数据标志位
EU //上升沿触发
LPS
AB>= VB30, 10 //如果数据记录大于了10次,则重新清空数据,等待下一次记录开始
MOVB 0, VB30 //清空记录数据次数的存储器
-D 10, AC1 //指针地址返回
LRD
AB= VB0, 0 //第一次数据记录开始
MOVD &VB10, AC1 //创建一个指针起始地址VB10
FILL 0, VW10, 5 //清空自VB10~VB19存储器数据
LPP
MOVB VB0, *AC1 //将VB0的数据存放到VB10
+D 1, AC1 //指针向下移动一个字节
INCB VB30 //数据次数记录存储器
/////////////////////
利用比较指令判断前一个数据的不等于,则启动M0.0
提问者对于答案的评价:
谢谢。
最佳答案作者回复:
例子如果实际应用需要修改:
1)记录次数;(例子10次)
2)记录数据类型;(例子是字节byte)
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc361310.html