请问这个SCL程序怎么转换为精致面板上的VB程序?

这是CPU上的SCL源程序,我模仿着写在TP1200里的VB里。但是不知道怎么写?
1.为什么Y3、Y4、Y5等变量定义不了了呢?是不是要在脚本-常规-设置-参数里申明的,请教截图?
2.ByVal和ByRef有什么区别?
程序如下:

FUNCTION_BLOCK Fung_1V_5

VAR_INPUT  
In:    REAL ;//   retain    in  
ZUIDU_INPUT :  REAL;//RETAIN IN  
X1:    REAL ;//   retain    in    
X2:    REAL ;//   retain    in    
X3:    REAL  ; // retain    in    
X4:    REAL ; //  retain    in    
X5:    REAL ; //  retain    in    
//X6:    REAL ; //  retain    in    
//X7:    REAL ; //  retain    in    
Y1:    REAL ; //  retain    in    
Y2:    REAL ; //  retain    in    
Y3:    REAL ; //  retain    in    
Y4:    REAL ; //  retain    in    
Y5:    REAL ; //  retain    in    
//Y6:    REAL ; //  retain    in    
//Y7:    REAL ; //  retain    in    
END_VAR
VAR_OUTPUT 
    Out:    REAL ; //  retain    out    
    Error:    BOOL; //   retain    out    0
END_VAR

VAR
     K1:  REAL;
     K2:  REAL;
     K3:  REAL;
     K4:  REAL;
     K5:  REAL;
     
END_VAR
   BEGIN
  
    K1:= 1-(ZUIDU_INPUT*Y1)/100;
    K2:= 1-(ZUIDU_INPUT*Y2)/100;
    K3:= 1-(ZUIDU_INPUT*Y3)/100;
    K4:= 1-(ZUIDU_INPUT*Y4)/100;
    K5:= 1-(ZUIDU_INPUT*Y5)/100;
   IF In >= X1 AND In < X2 THEN
   Out := K1 + (In - X1) * (K2 - K1)/(X2 - X1);
ELSIF In >= X2 and In < X3 THEN
   Out := K2 + (In - X2) * (K3 - K2)/(X3 - X2);
ELSIF In >= X3 and In < X4 THEN
   Out := K3 + (In - X3) * (K4 - K3)/(X4 - X3);
ELSIF In >= X4 and In < X5 THEN
   Out := K4 + (In - X4) * (K5 - K4)/(X5 - X4);
//ELSIF In >= X5 AND In < X6 THEN
  // Out := Y5 + (In - X5) * (Y6 - Y5)/(X6 - X5);
//ELSIF In >= X6 AND In < X7 THEN
   //Out := Y6 + (In - X6) * (Y7 - Y6)/(X7 - X6);
ELSIF In >= X5  THEN
      Out := K5;
      Error := True;
   ELSIF In < X1 THEN
      Out := K1;
      Error := True;
   ELSE
      Error := False;
   END_IF;
END_IF;
END_FUNCTION_BLOCK

图片说明:

请问这个SCL程序怎么转换为精致面板上的VB程序?   

最佳答案

首先:SCL源码多了一个END_IF;

VBS代码
    Dim In0, ZUIDU_INPUT, X1, X2, X3, X4, X5, Y1, Y2, Y3, Y4, Y5, K1, K2, K3, K4, K5, Error0, Out
    K1 = 1 - (ZUIDU_INPUT * Y1) / 100
    K2 = 1 - (ZUIDU_INPUT * Y2) / 100
    K3 = 1 - (ZUIDU_INPUT * Y3) / 100
    K4 = 1 - (ZUIDU_INPUT * Y4) / 100
    K5 = 1 - (ZUIDU_INPUT * Y5) / 100
    If In0 >= X1 And In0 < X2 Then
        Out = K1 + (In0 - X1) * (K2 - K1) / (X2 - X1)
    ElseIf In0 >= X2 And In0 < X3 Then
        Out = K2 + (In0 - X2) * (K3 - K2) / (X3 - X2)
    ElseIf In0 >= X3 And In0 < X4 Then
        Out = K3 + (In0 - X3) * (K4 - K3) / (X4 - X3)
    ElseIf In0 >= X4 And In0 < X5 Then
        Out = K4 + (In0 - X4) * (K5 - K4) / (X5 - X4)
    ElseIf In0 >= X5 Then
        Out = K5
        Error0 = True
    ElseIf In0 < X1 Then
        Out = K1
        Error0 = True
    Else
        Error0 = False
    End If

图片说明:

请问这个SCL程序怎么转换为精致面板上的VB程序?  

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年5月28日
下一篇 2017年5月28日

相关推荐

  • 博途V13打开程序报错

    在点击程序编辑时,博途报错:某些信息丢失,不应该发生这样问题,请向西门子技术支持咨询 最佳答案 是否进行过杀毒或优化,因为这些杀毒软件可能会误删除一些西门子软件的文件,导致软件不能…

    SIMATIC S7-1500 2017年6月10日
  • S71500与OPC通讯问题

    S71500与OPC通讯不上,哪里出了问题请高手指点。 最佳答案 SIMATIC NET OPC Server与S7-1500通讯要点-下载中心-工业…

    SIMATIC S7-1500 2017年5月31日
  • wincc C/S结构中客户机为何不显示归档变量数据。

    系统采用wincc C/S结构,服务器中归档的历史数据都很正常,而客户机中却无法看到这些归档的数据。这类系统做过好几个,常规来讲应该不会出现这种问题。本次的这系统可能因为…

    SIMATIC S7-1500 2017年6月1日
  • S71500 开放式用户通信

    我想实现一个 PLC1500 CPU通过Profinet接口与PC机进行UDP通信的功能。现在已经设置好相应的TCON连接模块 和 TUSE…

    SIMATIC S7-1500 2017年6月1日
  • 1500的存储卡 忘记密码了 还有什么办法能下载程序?

    1500的存储卡 忘记密码了 还有什么办法能下载程序? 最佳答案 使用 SIMATIC 存储卡进行数据传输将对象从项目传送到 SI…

    SIMATIC S7-1500 2017年6月7日
  • S7-1500能否像S7-300一样在本地扩展多个机架

    S7-1500能否像S7-300一样在本地扩展多个机架 最佳答案 不能,1500扩展需要通过Profibus或者Profinet或者ET200MP,用ET200SP也可以扩展IO …

    SIMATIC S7-1500 2017年6月8日
  • TEMP变量到底可靠不可靠?

    在做个系统,用了很多FC,用了不少TEMP变量,用于中间变量的处理!不少人又说到,FC中的TEMP变量不是太稳定,真若如此,程序大改!针对這个问题,请大侠支招! 图片说明: &nb…

    2017年6月11日
  • S7-1500定时器

    博图V14 SP1 在FB块,static建IEC_TIMER变量,用于定时器,前面条件导通不定时(如图),不知哪里出错?如果自动生成定时器的背景数据块,则定时…

    2017年5月28日
  • 第一次使用1500,关于1500选型

    我是新手,第一次接触1500(1200没有语句表,SCL语句不会),输入点40,输出20个,走网口,考虑性价比问题,请问选1500哪个型号比较合适,输入输出模块型号,价格致多少,跟…

    SIMATIC S7-1500 2017年6月3日
  • s7-1500使用opc访问

    如何通过上位机软件opc连接s71500,实现通讯 问题补充:有中文版的吗?如果使用自己编写的上位机软件如何使用opc与s7-1500连接呢? 最佳答案 参考:如何通过OPC&nb…

    SIMATIC S7-1500 2017年6月3日