Я совершенно новый в среде TwinCAT 3 и .NET. Я пытаюсь просто создать HMI с помощью кнопки и связать ее с переменной в TwinCAT 3. Я контролирую TwinCAT 3 выходную карту Beckhoff (EL2014), поэтому я создал следующую переменную с именем «Out_1» и связал ее с одним выход карты:Как связать Beckhoff TwinCAT 3 с Visual Studio HMI, созданным на C#?
Переменные свойства:
код этой кнопки:
private void button1_Click(object sender, EventArgs e)
{
TwinCAT.Ads.TcAdsClient tcAds = new TwinCAT.Ads.TcAdsClient();
tcAds.Connect(301);
tcAds.WriteSymbol("TIRT.Task 2.Outputs.Out1", true,
reloadSymbolInfo: true);
}
Появляется следующее сообщение:
Дополнительная информация: Ads-Error 0x710: Symbol не найден.
Неправильное имя символа, используемое для доступа к переменной, и я действительно не знаю, как это записать.
Кто-нибудь знает, как я могу получить доступ к этой переменной?
спасибо.
Спасибо, это сработало! Как получить доступ непосредственно к регистрам конкретного терминала? В моей конфигурации он позволяет мне проверять «Создать символы» только для уровня «Устройство 5 (EtherCAT), но не для конкретных тем (например, Term 5 (EL2014)). Я хотел бы получить доступ к его регистрам и контролировать напрямую выходы без создания каких-либо переменных, связанных с этими выходами. Спасибо за ваше время! – Emm
Я считаю, что это невозможно или, по крайней мере, не рекомендуется. Если вы не связываете переменные IO-устройства с задачей, TwinCAT будет жаловаться на активацию, для этого требуется мастер синхронизации (переменная IO, связанная с переменной задачи). Таким образом, должна быть промежуточная задача. Хотя я никогда раньше этого не делал, возможно, вы можете создать подключение ADS к порту 11 и использовать полное имя переменной IO, которую вы можете увидеть, дважды щелкнув по ней, например: 'TIID^Устройство 1 (EtherCAT)^Срок 1 (EK1100)^Срок 2 (EL2042)^Канал 1^Выход' (без TIID). Или используйте группу индексов и смещение. – stevenv