[英]Convert vb6 code to vb.net?
我想把這個PID控制代碼放到我的VB.net項目中,但對所有感嘆號都有點無能為力。 有人可以向我解釋如何在VB.NET中實現這段代碼嗎?
Dim Er!, Derivative!, Proportional!
Static Olderror!, Cont!, Integral!
Static Limiter_Switch%
Limiter_Switch% = 1
Er = setpoint - process
If ((Cont >= 1 And Er > 0) Or (Cont <= 0 And Er < 0) Or (Integ >= 9999)) Then
Limiter_Switch = 0
Else
Limiter_Switch = 1
End If
Integral = Integral + Gain / Integ * Er * deltaT * Limiter_Switch
Derivative = Gain * deriv * (Er - Olderror) / deltaT
Proportional = Gain * Er
Cont = Proportional + Integral + Derivative
Olderror = Er
If (Cont > 1) Then
Cont = 1
End If
If (Cont < 0) Then
Cont = 0
End If
Return ()
在VB6中,可以添加某些后綴以指定變量類型。 例如:
Dim x%
是相同的:
Dim x As Integer
VB.NET仍然支持后綴,但是它們被廣泛勸阻 。 以下是可能的后綴列表:
$
是String
的后綴 %
是Integer
的后綴 &
是Long
的后綴 !
是Single
的后綴 #
是Double
的后綴 @
是Currency
的后綴(現在是.NET中的Decimal
) VB6沒有為所有核心數據類型提供后綴字符。 例如, Boolean
, Date
或Short
沒有有效的后綴字符。 即使在VB6中,許多人也建議在所有變量聲明中始終使用As
,但仍有許多人建議使用后綴(如果可用),因為它們提供了一些額外的預編譯類型檢查,這通常是有益的。
因此,要將該代碼轉換為.NET,您需要使用As ...
子句替換任何變量聲明行中的后綴符號,為istance指定等效類型,而不是:
Dim Er!, Derivative!, Proportional!
Static Olderror!, Cont!, Integral!
Static Limiter_Switch%
你將其轉換為:
Dim Er, Derivative, Proportional As Single
Static OldError, Cont, Integral As Single
Static Limiter_Switch As Integer
然后,在使用變量時出現后綴符號,在聲明行之外,您只需刪除該符號即可。 例如,而不是:
Limiter_Switch% = 1
你將其轉換為:
Limiter_Switch = 1
請記住,在將類型從VB6轉換為VB.NET時,VB.NET中的數字類型會更大。 因此,例如,VB6中的Integer
是16位,但在VB.NET中, Integer
是32位。 因此,從技術上講,VB.NET中的等價物對於VB6 Integer
是Short
。 通常,它沒關系,你只想使用Integer
for Integer
,但如果位數很重要,你需要小心。
這些符號在舊版本的MS Basic中指定了變量類型,最多為VB6。 %=整數,&=長,!=單,#=雙,@ =貨幣,$ =字符串
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.