我在plc中编写代码产生一周期为T的正弦波信号,以模拟工业信号。通过ob35周期调用,ob100设置起始参数,将采集的数据放入DB2.DBD12,plcsim仿真后,DB2.DBD12一直是个定值,而不是我想的随时间变化,出了什么问题?怎么修改成我想要的效果?
ob35周期为10ms,FB71是我从官方文档中下载的事例中复制过来的,程序本身应该没问题,但以防万一将程序和数据块一起奉上,DB2建好且有对应变量存在。开始我以为是ob100中也调用FB71的原因,ob100只运行一次,使得采集数据定值,我把它(ob100中的fb71)删除后连值都没有了,一直为0。
希望各位大佬能帮我解答一下,万分感谢!
问题补充:
我监视了一下ob35,发现Periodic_time为0,好像是没附上值,这是不是错误的原因?能帮我看看为什么没附上值吗,赋值程序在ob100那边(就是用MOVE的那个)。
还有就是RENHQ大佬说的问题,文档中period确实是real,但它下面提供下载的项目里面他改成了DINT,还有他的OBcycle也从DINT改成看int,但这不要紧吧,我看了它fb71中的程序感觉没什么问题,难道说必须用real?
图片说明:
最佳答案
官方有正弦波函数程序:
如何在STEP 7 V5.x中使用循环中断实现信号发生器(矩形, 锯齿形, 三角形, 正弦信号)?
https://support.industry.siemens.com/cs/cn/zh/view/67295964
参数和里面设置的一样的吗?
MD18应该是浮点数格式吧
补充:
可能你在程序别的地方有写入或者地址用重复了呢
你测试的话,建议在仿真里面直接输入参数进行测试,这样更简单一些,然后再根据需要,在程序里面对这些参数进行处理,需要更改的时候再进行更改这样
图片说明:
提问者对于答案的评价:
多谢大佬,确实是MD18出问题了,我改成MD26后就没问题了。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc286506.html