s7-300/400,引用SFC1时出错。

s7-300/400,引用SFC1时出错。在OB10里引用SFC1,想利用SFC1来读取时间,读取时间“时”来做后续的逻辑,可是在引用SFC1的时候,出现CDT的输出错误,显示红色:非法参数类型,该输出变量我已在DB282里已经定义了,可是一直都是说该变量非法。请问各位大侠,这个是怎么回事呢?应该怎么解决呢?谢谢。

问题补充:
谢谢各位大侠的指导。那个输出的变量已经搞定了。可是如果我要取系统时间的“时”用来控制后续的程序时,应该怎么做呢?要求是每天的0点,8点,16点动作的,我在程序中利用了MOVE块,把读时间的数据DB280.DBB173送到MW300,可是在监控中MW300一直都是显示0,这个是怎么回事呢?应该怎么处理呢?谢谢。

图片说明:

s7-300/400,引用SFC1时出错。    s7-300/400,引用SFC1时出错。    s7-300/400,引用SFC1时出错。    s7-300/400,引用SFC1时出错。   

最佳答案

应该是只接受符合输入。在DB1里定义一个名称为A的DT类型的变量,然后在接口输入DB1.A就行了。能读上来,你用返回值对照帮助看看是什么原因。不过要实现你的功能可以不用SFC1。直接用ob1的临时变量LB15就是系统的小时,不过在你的程序中要加个BCD_I转换一下。因为DT格式是用BCD码表示的,你后面用到了整数比较。我发了一个没有转换的结果的截图,最后的结果就是错误的。

图片说明:

s7-300/400,引用SFC1时出错。  s7-300/400,引用SFC1时出错。  s7-300/400,引用SFC1时出错。  

提问者对于答案的评价:
谢谢大侠的帮忙。顺利的解决了。谢谢!

专家置评

已阅,最佳答案正确。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc225980.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 上午1:16
下一篇 2018年12月1日 上午1:17

相关推荐