c# - 如何以编程方式将 twincat 3 项目部署到 PLC
问题描述
我正在寻找一种方法来激活配置并通过 C# 更新引导项目。我的 Twincat 3 项目已编译,所有必要的文件都在 /_Boot 文件夹中。下一步是在我的 PLC 上加载和执行项目的 C# 程序(实际上是单元测试)。
到目前为止,我已经阅读了 Beckhoff 信息系统,但找不到任何提示。
解决方案
您需要 Twincat 自动化接口 API 才能激活您的配置并启动 PLC。
官方文档中的一个例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EnvDTE100;
using System.IO;
using TCatSysManagerLib;
namespace ActivatePreviousConfiguration{
class Program
{
static void Main(string[] args)
{
Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
EnvDTE.DTE dte = (EnvDTE.DTE)System.Activator.CreateInstance(t);
dte.SuppressUI = false;
dte.MainWindow.Visible = true;
EnvDTE.Solution sol = dte.Solution;
sol.Open(@"C:\Temp\SolutionFolder\MySolution1\MySolution1.sln");
EnvDTE.Project pro = sol.Projects.Item(1);
ITcSysManager sysMan = pro.Object;
sysMan.ActivateConfiguration();
sysMan.StartRestartTwinCAT();
}
}
}
您还可以使用此 api 执行许多其他操作,例如为您的 PLC 生成代码。
您可以在此处找到文档:
推荐阅读
- node.js - Node中等效的Java同步块
- swift - SwiftUI 按钮点击重置 SpriteKit 动画 - 这是一个错误吗?
- java - cursor.getString 不能与字符串变量相等
- java - 安装后指向非嵌入式JRE的应用
- python - 通过嵌套字典解析创建 Pandas 数据框
- python - 在 scipy.optimize.minimize 中的 NonlinearConstraint 中指定粗麻布的问题
- sql - Redshift SQL:检查同一组值是否在表的两个不同列中
- ruby-on-rails - 更改 Time.now 时区 rails minitest
- php - Azure Web 应用、PHP 7.4、OCI8(Oracle Instant Client 12.2.0.1.0)
- javascript - Discord.js guildMemberAdd 获取公会