16. {attribute 'tc_no_symbol'}禁止变量生成ADS Symbol的编译属性

 

应用场景:

在项目开发过程中为满足核心算法的保密要求,可以将实现核心算法部分的PLC代码单独封装为一个编译打包的PLC库文件,在逻辑控制的主程序中仅需调用该算法库中的函数、功能块或程序段即可,以此实现对知识产权的保护。

但算法中的一些参数项仍然需要现场操作人员调整设置,例如操作高级语言实现的上位机软件,这类上位机软件与TwinCAT之间通常使用ADS方式通讯,本文将介绍如何使用ADS和已封装到库文件中的变量通讯。

 

操作步骤:

1.在库工程中编辑,声明变量及运算函数;

2.在PLC工程中,安装库文件→添加库到项目→Main程序中调用运算函数;

3.使用Target Browser浏览变量名或Index Group/Offset;

4.根据Target Browser中提供的变量信息编写ADS通讯程序;

5.如果需要隐藏一些关键的变量信息,可以为库中的变量增加编译属性{attribute 'tc_no_symbol'}。

该编译属性会阻止编译器生成对应的ADS Symbol,此时再请求该变量数据ADS Server会反馈如下通讯报警消息。

 

注意事项:
  • TwinCAT 3中,无论是否为带源码的库文件均可通过ADS访问;
  • TwinCAT 2编译的库文件同样可以通过ADS访问,不过仅限声明在全局变量表中的变量,PRG中声明的变量无论调用与否均不可访问;
  • TwinCAT 2编译的库文件无论是否带拓展属性,例如Encrypted、Internal/External等,均可通过ADS访问。

 

附录:

①Info参考链接:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_plc_intro/3108007179.html&id=5248511275946665101

②文件链接关系:

③测试例程下载链接

 

2025.11.26 云龙 供稿