TwinCAT3_C++_Simulink教程学习
环境 :TWinCAT3
目标:实现C++模块,并可以在PLC中进行调用
学习PLC直接调用C++模块,文档第6章节 第31页
文档:TwinCAT3_C++_Simulink教程V3.11.pdf
章节:6.0 PLC调用C++模块
页次:31
AppInfo找不到,修改为_AppInfo
TcQueryInterface只支持两个参数
TcQueryInterface(IID_I_PLCcontrol, ADR(ip_PLCControl));
TwinCAT报错 There is no implememtation for method "TCRELEASE" defined in interface 'ITCUNKNOWN'
解决方法:...
C++例子
https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclib_tc3_module/2282263819.html&id=
1. Instantiating a TwinCAT C++ class as a TwinCAT TcCOM Object
2. Creating an FB in the PLC, which as a simple wrapper offers the functionality of the C++ object
3. Execution of the sample project
infosys C++链接
https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_c/index.html&id=
Modules - Handling
网站:https://infosys.beckhoff.com/english.php?content=../content/1033/tc3_c/index.html&id=
以下是网页翻译内容
TcCOM 模块经构建后实现并被加载
本节说明在系统间交换模块时的处理方法。
需要区分两种 C++ 项目类型:
-
C++ 驱动程序:会生成 .sys 文件,以便由操作系统加载。
-
带版本控制的 C++ 项目:会生成 tmx 文件,以便通过 TwinCAT 加载器(从 TwinCAT 3.1 Build 4024 版本起)进行加载。
倍福 (Beckhoff) 推荐标准情况下使用带版本控制的 C++ 项目。它们提供的优势包括:
-
可通过从倍福获取的 OEM 证书进行驱动程序签名。
-
二进制文件的版本化存储。
-
按需提供的在线更改 (Online Change) 功能。
更多信息
-
带版本控制的 C++ 项目
-
不带版本控制的 C++ 项目
-
启动模块
-
TwinCAT 加载器
报错:
Inconsistent inheritance of C++-Compatibility.Missing attribute for "I_PLCcontrol".
Inconsistent inheritance of C++-Compatibility.Missing attribute for "ITcUnknown".
删除 PLC代码中红色字体部分 FUNCTION_BLOCK FB_ControlModule //IMPLEMENTS I_PLCcontrol
删除TcAddRef
删除TcQueryInterface
删除TcRelease
官方建议使用版本控制的 C++ 项目,但是4024版本不能正确部署,还得手工修改tmc文件