首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C#检测Beckhoff PLC上的代码更改

使用C#检测Beckhoff PLC上的代码更改
EN

Stack Overflow用户
提问于 2018-08-23 16:55:56
回答 2查看 1.3K关注 0票数 1

我有一个Beckhoff PLC,它正在运行一个用TwinCat3开发的软件。有没有办法使用C#应用程序检索正在运行的软件?TwinCAT.Ads库似乎没有提供这样的功能。

该计划将能够将在线内容与本地存储的备份进行比较,以检测服务技术人员所做的任何计划外代码更改。

例如,如果我可以从PLC中检索散列代码,并从本地备份中生成散列,并查看它们是否匹配,这对我来说就足够了。

有没有更好的方法来检测这种变化呢?

我是贝克霍夫PLC / TwinCat3的新手,所以非常感谢所有关于这件事的信息。

编辑:我应该补充说,C#应用程序将自动检查计划外代码更改的过程,并且只对其进行标记,以便工程师可以批准或拒绝更改。

EN

回答 2

Stack Overflow用户

发布于 2018-09-04 12:27:10

PLC3包含PlcAppSystemInfo数据类型,其中包含有关TwinCAT项目和系统的一些信息。参见this link。数据可以从全局变量_AppInfo中找到

AppTimestamp是上次更改应用软件时的DT (DATE_AND_TIME)。从Beckhoff文档中,我感觉它会在每次重新启动后重置(“PLC应用程序开始时的时间”),但当我测试它时,它在重新启动和关闭电源时保持不变。当我更新PLC应用程序时,日期随在线更改和下载而更改。

因此,据我所知,您可以读取应用程序上次更新的日期和时间,并比较是否发生了更改。你没有说如果你已经知道如何使用c#读取变量,我想你知道如何使用ReadAny,所以只需读取变量_AppInfo.AppTimeStamp的值。

票数 3
EN

Stack Overflow用户

发布于 2018-08-23 18:58:02

我首先想到的是TwinCAT自动化接口。它基本上是一个API,允许您访问您在Visual Studio/TwinCAT中通常所做的某些部分。TwinCAT自动化接口库与TwinCAT安装一起安装,有几种方法可以访问它们。API的文档和示例主要使用C#/.NET编写。

请参阅此处的文档:http://download.beckhoff.com/download/document/automation/twincat3/AutomationInterface_pdf_EN.pdf

更具体地说,对于您的情况,我认为这将是有趣的:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_automationinterface/2488994571.html&id=155511204171430517

这样,您就可以对本地项目进行比较(您也可以通过自动化接口打开它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51981879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档