Записать массив 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.

Другие вопросы по тегам