首先在符号表中定义了 输出端口 1.1GFJ-N PQW 800 WORD
DB 100 为电机背景数据块
电机控制程序 “DJ” FB 301 端口定义如下
IN:
JZ //电机就地/集中信号 ;BOOL
YX //电机运行/停止信号 ;BOOL
GZ //电机故障信号 ;BOOL
IN_OUT:
PID_OUT //变频电机频率给定;WORD
QD //WinCC界面上启动指令;BOOL
TZ //WinCC界面上停止指令;BOOL
OUT_ST //实际输出至电机的启动指令;BOOL
OUT_SP .//实际输出至电机的停止指令;BOOL
我使用SCL调用FB301 使用如下代码
DJ.DB100(JZ := "1.1GFJ-L" // IN: BOOL
,GZ := ("1.1GFJ-F" OR "1.1GFJ-BF" ) // IN: BOOL
,YX := "1.1GFJ-R" // IN: BOOL
,PID_OUT :="1.1GFJ-N"
,OUT_ST := "1.1GFJ-VST" // INOUT: BOOL
,OUT_SP := "1.1GFJ-VSP" // INOUT: BOOL
,BJ1 :="1.1GFJ-BF"
);//1#罗茨鼓风机
编译时在 PID_OUT那一行输出invalid assignment 错误
请问PID_OUT输出如何才能赋值给AO端口(1.1GFJ-N)
为何OUT_ST := "1.1GFJ-VST"没有报错?
问题补充:
FB 301 是我自己编写的电机控制程序,符号为"DJ"
PID_OUT这个变量只要定义为非BOOL变量,编译就有错误,
OUT_ST OUT_SP 是BOOL变量用来输出给CPU的DO 编译没有问题,可是为什么同样是IN_OUT类型,却编译不通过呢?
图片说明:
最佳答案
你的FB301的调用是怎么做的,因为用调用的方式出来的格式和你这不同,所以我感觉这是不是你自己写上去的。
我试了下,没有问题的。见附图1。调用的方法见附图2,在出现的对话框是找到你想添加的块并选中,点击OK即可。在把相关的变量写上。
图片说明:
提问者对于答案的评价:
谢谢你的回答,已经搞定了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235688.html