я пытаюсь прочитать этот блок данных из ПЛК Siemens S300 с использованием s7netplus libary
, и моя структура отображенного кода выглядит следующим образом
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct CIP_B
{
public bool Start_Req;
public bool Start_Ack;
public bool End_Req;
public bool End_Ack;
public bool Ended_OK;
public bool Step_Interupted;
public bool Value_Changed;
public Byte CIP_OBJ;
public Byte CIP_TYPE;
[MarshalAs(UnmanagedType.U2, SizeConst = 16)]
public ushort[] VCM_Setpoint;
public Int16 Step_Num;
public Int16 changedValue;
[MarshalAs(UnmanagedType.U1, SizeConst = 10)]
public Byte[] Spare;
}
Я использую эту команду для чтения структуры
var res = (CIP_B)_plcClient.ReadStruct(typeof(CIP_B), 71, 0);
Я прочитал все остальные значения, кроме двух массивов, без проблем с вышеуказанной командой, но оба массива всегда приводят к нулю
Я также пытался создать конструктор и инициализировать там все поля, но все же получаю тот же результат.
Возможно ли вообще, как я могу прочитать два массива?