我正在通过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的参数没有好的类型
答案 0 :(得分:0)
对于遇到类似问题的人的参考: TwinCAT和VB的数据类型的差异可以在Beckhoff网站上找到: https://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager/basics/TcSysMgr_DatatypeComparison.htm&id=
TwinCAT使用IEC61131-3标准。