c# - (TwinCAT)如何检查任务选项中的“创建符号”框(c#自动化代码)
问题描述
我需要使用 ac# 代码创建一个新任务(twincat 必须在后台保持打开状态,我必须不直接与其交互),并从任务选项中检查 Create Symbols 框,这样我就可以通过 SymbolLoaderFactory 访问符号.创建方法。创建任务的代码部分如下:
ITcSysManager sysMan = Connect2Twincat(solutionPath, solutionName);
string TaskName = "Task BECKHOFF";
ITcSmTreeItem tasks = sysMan.LookupTreeItem("TIRT");
taskBKF = tasks.CreateChild(TaskName, 0, null, null);
你能告诉我如何修改“创建符号”选项吗?因为使用该代码,该任务未选中该框。
解决方案
我发现了如何自己解决它,如果有人遇到同样的问题,请发布答案。(免责声明:我不是程序员,我可以说愚蠢的话)它是通过 xml 完成的,在创建任务之后(我在问题中编写的代码)。
StringWriter stringWriter = new StringWriter();
using (XmlWriter writer = new XmlTextWriter(stringWriter))
{
writer.WriteStartElement("TreeItem");
writer.WriteStartElement("TaskDef");
string affinityString = string.Format("#x{0}", ((ulong)affinityMask).ToString("x16"));
writer.WriteElementString("CpuAffinity", affinityString);
writer.WriteEndElement();
writer.WriteEndElement();
}
string xml = stringWriter.ToString();
task.ConsumeXml(xml);
...(来自文档 - 下面的链接)...
string taskXml = taskBKF.ProduceXml();
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(taskXml);
XmlNode createSymb = xmlDoc.SelectSingleNode("TreeItem/TaskDef/CreateSymbols");
string xml = string.Format("<TreeItem><TaskDef><CreateSymbols>true</CreateSymbols></TaskDef></TreeItem>");
//the "true" in the middle defines if the create symbols box will be checked or unchecked
taskBKF.ConsumeXml(xml);
推荐阅读
- javascript - 测试 :id 路由
- python - 神经国际象棋:样本神经网络陷入价值
- javascript - React Excel 工作簿构建
- asp.net - 注销时重定向到不存在的 URL 时的 Asp.net Webforms 应用程序
- mqtt - mqtt-mosquitto 存储所有主题的地方?
- groovy - Visual Studio Code 中的 Groovy 格式化程序/美化器
- python - 如何在 tensorflw 中创建一个只有单个时间步长的 lstm 单元?
- python - 连接相似名称变量的方式
- mongodb - MongoDB shell 版本 v3.6.4
- azure - Azure Ad b2c:在注册时更改当前电子邮件模式验证