Записать массив struct используя TwinCAT.Ads через приложение vb.net
Я использую TwinCAT.Ads (TwinCAT 3) для связи Beckhoff plc через приложение vb.net. Приложение читает и пишет несколько переменных 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
....так далее
Таким образом, параметры моей структуры имели плохой тип
1 ответ
Решение
Ссылка для тех, у кого есть похожие проблемы: Различие в типе данных для TwinCAT и VB можно найти на веб-сайте Beckhoff: https://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager/basics/TcSysMgr_DatatypeComparison.htm&id=
TwinCAT использует стандарт IEC61131-3.