网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月27日漏签0天
plc吧 关注:170,774贴子:842,351
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 8回复贴,共1页
<<返回plc吧
>0< 加载中...

三菱FX3U函数功能的一个BUG

  • 只看楼主
  • 收藏

  • 回复
  • 1063685203
  • 寻找资源
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
首先,由于网上实在没有什么ST语言函数定义的资料,在这里传播一下,无意间得知ST函数返回值其实就是函数名本身,有点像Matlab,但是返回值是不需要声明的,而是直接使用函数名。
如我要建一个FUN,那么在局部标签中按顺序声明VAR_INPUT的标签,那么这些标签就代表函数形参,从上到下各标签就是形参表从左到右的形参名字。
比如我这个叫"setOrReset"的函数:
局部标签如下:
VAR_INPUT default Bit
VAR_INPUT set0 Bit
VAR_INPUT set1 Bit
函数本体如下:
IF set0 & NOT set1 THEN
setOrReset := FALSE;
ELSIF NOT set0 & set1 THEN
setOrReset := TRUE;
ELSE
setOrReset := default;
END_IF;
返回值是直接使用函数名"setOrReset"。
这就是三菱GX work的函数。
这个函数是正常的。然后我这里有一个不正常的函数,叫"isRaise"
局部标签:
VAR_INPUT signDigitalIn Bit
函数本体:
isRaise := LDP(TRUE, signDigitalIn);
在主程序中调用为:
M0:= isRaise(X0);
M1:=isRaise(X1);
Y0 := setOrReset(Y0, M0, M1);
这时候isRaise就不正常了,变成一个普通的赋值。
而只要将第一行改一下,变成 :
M0:= LDP(TRUE, X0);
M1:=isRaise(X1);
Y0 := setOrReset(Y0, M0, M1);
第二行就正常了。没错,改了第一行把第二行搞正常了。
初步断定GXWorks2中对函数套用的支持不好,不能在一个函数中套用另一个函数。


  • 1063685203
  • 寻找资源
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第2次试验,将主程序改为:
M0:= isFall(X0);
M1:=isRaise(X1);
Y0 := setOrReset(Y0, M0, M1);
两个函数都正常了。说明GX Works2里或FX3U PLC中自定义函数不可以重复使用。


2025-08-27 23:31:38
广告
不感兴趣
开通SVIP免广告
  • 1063685203
  • 寻找资源
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
确定了只要同一个自定义函数名出现两次就会出错。
这就是为什么GX Work2里有提供那么多的函数,但是却没有什么人想搞自定义函数的原因。函数的目的是消除重复代码,如果函数不能复用,就起不到消除重复代码的作用,也就没有什么吸引力了。但是系统函数是可以重复使用的。


  • PLC设计
  • 进入深层
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感觉还是西门子的SCL好用


  • qwe375499941
  • 初步入手
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可能不能在一个程序块里面出现两个?


  • 公平就是扯淡
  • 了解更多
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
函数本体:
isRaise := false;
isRaise := LDP(TRUE, signDigitalIn);
返回值也属于局部变量,必须要自己手动复位


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回plc吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示