1

我正在使用 TwinCAT.Ads (TwinCAT 3) 通过 vb.net 应用程序进行 Beckhoff plc 通信。应用程序正在读取和写入一些 PLC 变量。我需要写一个结构数组。

我的结构:

Friend Structure Struct_Recette
    Dim nNumProg As Integer             ' Programme associated
    Dim nNumZone As Integer             ' Zone
    Dim nNumManifold As Integer         ' Manifold
    Dim nNumRallonge As Integer         ' Rallonge
    Dim nNumSaphir As Integer           ' Saphir
    Dim nNumMors As Integer             ' Mors
End Structure

我的PLC:

valTabRecette:      ARRAY [0..15] OF Struct_Recette;

我的代码:

Friend Sub ValidationMPodeProd(sender As Object, e As EventArgs) Handles btnValidProd.Click
    Dim valTabRecette(0 To 15) As Struct_Recette

    'Some code to fill the structs

        ADS.WriteAny(PLCHandle, valTabRecette)
    End If
End Sub

启动此程序时出现错误:

0x705 parameter size not correct    

我解决了问题:
vb.net 和 Beckhoff 的类型不一样

vb.net          Beckhoff 
int        =      Dint
short      =      int

....ETC

所以我的结构的参数不是好的类型

4

1 回答 1

0

有类似问题的人可以参考:TwinCAT 和 VB 的数据类型差异可以在 Beckhoff 网站上找到: https ://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager /basics/TcSysMgr_DatatypeComparison.htm&id=

TwinCAT 使用 IEC61131-3 标准。

于 2017-03-18T09:56:39.133 回答