使用TwinCAT.Ads通过vb.net应用程序编写struct数组

时间:2017-03-08 15:36:37

标签: .net vb.net twincat twincat-ads twincat-ads-.net

我正在通过vb.net应用程序使用TwinCAT.Ads(TwinCAT 3)进行Beckhoff plc通信。应用程序正在读写几个plc变量。 我需要写一个struct数组。

我的结构:

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

My 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

....等

所以我的struct的参数没有好的类型

1 个答案:

答案 0 :(得分:0)

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

TwinCAT使用IEC61131-3标准。