恭喜,你发布的帖子
发布于 2020-12-28 18:46:47
1楼
问题1:程序第28行和程序第55行,值设置位16#7000或16#7001,为用户编程自定义的程序块状态数值,用于反映程序块运行的状态。如下图你可在块接口常量内找到定义。严格意义上编程都需要由程序块的状态位反馈,你可查看PLC内的通信指令(例如TCP或S7)都有Status管脚,来标识程序块执行的状态。
问题2:经查程序61行内的变量在FB块内无置1的情况,固此程序段不会执行,无实际意义。
问题3:第61行的程序和70行的程序,理解没问题。不过这么写多余,可以省略。
问题4:75行和80 可理解为当#enable没有信号变化时,一直为0或一直为1时,刷新保存旧#enable状态以便信号发生沿变化时,执行上升沿或下降沿内逻辑。
问题5:如果你将DRIVE的值设置为5,那么实际的必需有一台V20变频器的从站地址设置为5。在V20 P2011参数设置从站地址。
PZD_LEN对应V20变频器P2012参数,需要跟变频器设置参数一致,对于1200一般使用长度2。
问题6:Valid 标识FB输出参数的有效性 和 busy 标识FB程序块执行状态,是否被执行。
第109行USS通信驱动报错时,#statErrorAutoCleared 置1。
当#statErrorAutoCleared = 1时,Valid =0;busy=1;意思FB内程序在执行,但输出值无效。
当#statErrorAutoCleared = 0时,Valid =1;意思FB块的输出值有效。
问题7:#statErrorUserCleared和#statErrorAutoCleared为用户编程自定义做的错误状态位。
#statErrorUserCleared变量在程序内没用,您可忽略。
#statErrorAutoCleared变量为USS通信时USS_Drive_Control块的输出FAULT位。
问题8:同问题1。
请填写推广理由:
分享
只看
楼主