SCL 调用FB块时如何使用其输出值

首先在符号表中定义了 输出端口 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类型,却编译不通过呢?

图片说明:

SCL 调用FB块时如何使用其输出值   

最佳答案

你的FB301的调用是怎么做的,因为用调用的方式出来的格式和你这不同,所以我感觉这是不是你自己写上去的。
我试了下,没有问题的。见附图1。调用的方法见附图2,在出现的对话框是找到你想添加的块并选中,点击OK即可。在把相关的变量写上。

图片说明:

SCL 调用FB块时如何使用其输出值  SCL 调用FB块时如何使用其输出值  SCL 调用FB块时如何使用其输出值  

提问者对于答案的评价:
谢谢你的回答,已经搞定了

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

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

相关推荐