当前位置: 主页 > PLC控制

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

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

FUNCTioN_BLOCKFung_1V_5

VAR_INPUT
In:REAL;//retainin
ZUIDU_INPUT:REAL;//RETAININ
X1:REAL;//retainin
X2:REAL;//retainin
X3:REAL;//retainin
X4:REAL;//retainin
X5:REAL;//retainin
//X6:REAL;//retainin
//X7:REAL;//retainin
Y1:REAL;//retainin
Y2:REAL;//retainin
Y3:REAL;//retainin
Y4:REAL;//retainin
Y5:REAL;//retainin
//Y6:REAL;//retainin
//Y7:REAL;//retainin
END_VAR
VAR_OUTPUT
Out:REAL;//retainout
Error:BOOL;//retainout0
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;
IFIn>=X1ANDIn<X2THEN
Out:=K1+(In–X1)*(K2–K1)/(X2–X1);
ELSIFIn>=X2andIn<X3THEN
Out:=K2+(In–X2)*(K3–K2)/(X3–X2);
ELSIFIn>=X3andIn<X4THEN
Out:=K3+(In–X3)*(K4–K3)/(X4–X3);
ELSIFIn>=X4andIn<X5THEN
Out:=K4+(In–X4)*(K5–K4)/(X5–X4);
//ELSIFIn>=X5ANDIn<X6THEN
//Out:=Y5+(In–X5)*(Y6–Y5)/(X6–X5);
//ELSIFIn>=X6ANDIn<X7THEN
//Out:=Y6+(In–X6)*(Y7–Y6)/(X7–X6);
ELSIFIn>=X5THEN
Out:=K5;
Error:=True;
ELSIFIn<X1THEN
Out:=K1;
Error:=True;
ELSE
Error:=False;
END_IF;
END_IF;
END_FUNCTION_BLOCK

图片说明:

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

最佳答案

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

VBS代码
DimIn0,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
IfIn0>=X1AndIn0<X2Then
Out=K1+(In0–X1)*(K2–K1)/(X2–X1)
ElseIfIn0>=X2AndIn0<X3Then
Out=K2+(In0–X2)*(K3–K2)/(X3–X2)
ElseIfIn0>=X3AndIn0<X4Then
Out=K3+(In0–X3)*(K4–K3)/(X4–X3)
ElseIfIn0>=X4AndIn0<X5Then
Out=K4+(In0–X4)*(K5–K4)/(X5–X4)
ElseIfIn0>=X5Then
Out=K5
Error0=True
ElseIfIn0<X1Then
Out=K1
Error0=True
Else
Error0=False
EndIf

图片说明:

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

提问者对于答案的评价:

  • 关注微信
上一篇:数据显示NAN
下一篇:博途连接CPU1516

猜你喜欢

微信公众号