倍福软件安装及注意事项

  • 一、TwinCat3安装(先安装VS)
    • 1.1TwinCAT3 Full 版安装步骤
    • 1.2最后安装帮助文档
  • 二、TCP/IP通信
    • 2.1.PC与PLC相连
      • 2.1.1IP地址设置
      • 2.1.2PC控制PLC
    • 2.2TCP/IP通信
      • 2.2.1在链接传感器之前,可使用cdx seeker读取传感器IP地址、PORT号。
      • 2.2.2PC读取传感器数据
  • 三、PLC调用C++工程
    • 3.1.环境配置
      • 3.1.1安装一个很重要的插件: "Windows Driver Kit" (WDK) 安装这个插件是为了能在 TwinACT 3 工程环境创建和编辑 C++模块。
      • 3.1.2 在开发电脑中创建并安装数字证书
      • 3.1.3在 64 位目标控制器中安装数字证书
    • 3.2创建 C++模块步骤
    • 3.3创建 PLC 项目调用 C++模块(PLC和C++不要放在一个工程里)
    • 3.4PLC和C++的I/O端口映射
      • 3.4.1创建C++中I/O变量
      • 3.3.2在PLC中创建I/O端口

一、TwinCat3安装(先安装VS)

这里我们就介绍如何安装 TwinCAT3 4020 Full 版本和 Infosys(帮助文档)。

1.1TwinCAT3 Full 版安装步骤

1)首先安装 TwinCAT3 Full 版本,安装包可以从 beckhoff 官方网站进行下载。
(2) 双击打开 TwinCAT3 Full 文件安装包进行安装。(安装前卸载各类安全卫士和杀毒软件)

(3)这里可以选 complete 即可。

选custom可自定义安装路径,安装文件默认即可。
(4)选VS环境,红框内也要勾选

(5)点击 Install 进行安装,安装好后选择 Yes 重启。

1.2最后安装帮助文档

1.2.到了这一步我们可以直接选 complete 并且下一步

3. 也可以选择 custom,这样你就可以只选择你所需要的帮助文档的语言, 并
且把 Visual Studio 2013 和 Enable automatic updates 打勾

4. 选择 Yes
注:若帮助文档没安装成功不影响使用

这样就完成了 TwinCAT3 的安装。
win10系统需在安装路径下(我的为E:\TwinCAT\3.1\System),以管理员身份运行win8settick.bat文件,重启电脑即可使用。

二、TCP/IP通信

先安装 TF6310-TCP-IP.exe ,点默认即可。

2.1.PC与PLC相连

2.1.1IP地址设置

注:在和PLC控制器相连前关掉防火墙
按照图片中的路径设置IP地址和子网编码,前两个数字必须和PLC控制器是一样的,PLC控制器0端口的IP地址为169.254.231.32,子网编码为255.255.0.0

2.1.2PC控制PLC

在SYSTEM下添加Target,按照图片中设置即可,输入IP地址点Enter Host Name/IP即可搜索到PLC。点Add Route会弹出一个窗口,不勾选ads,添加后connected下会出现一个x即代表连接成功,关掉这个窗口后在弹出的窗口中都点OK按钮。

2.2TCP/IP通信

2.2.1在链接传感器之前,可使用cdx seeker读取传感器IP地址、PORT号。

2.2.2PC读取传感器数据

使用NetAssist.exe

0x-16位,30 02-表示发送读取命令,0D 60-读取的ch1的数据
2.2.3PLC读取传感器数据
注:PC和PLC连接端口是一个地址,PLC和传感器连接端口是一个地址
使用PLC做client,传感器做server。发送命令时,命令中包含几位字符就定义几位的数组,如30 02 0D 60就定义4位的数组,一位包含两个数字,两位为一个字节。

发送命令后就可在ReceiveByte中读取到16进制的测量数据。

三、PLC调用C++工程

3.1.环境配置

3.1.1安装一个很重要的插件: “Windows Driver Kit” (WDK) 安装这个插件是为了能在 TwinACT 3 工程环境创建和编辑 C++模块。

(1)双击 KitSetup.exe
(2)选择“Build Environment”后点击 OK

(3)弹出窗口点击 OK,选默认即可,后续还会用到路径

(4)选择“I agree”后点击 OK

(5)安装完成后点击 Finish 结束

(6)随后打开【系统属性】修改环境变量,点击【环境变量】

(7)点击系统变量下的“新建”,分别填入变量名和变量值,
变量名: WINDDK7
变量值: C:\WinDDK\7600.16385.1

(8)设置好后会出现在系统变量中

3.1.2 在开发电脑中创建并安装数字证书

(1) 以管理员权限打开VS目录下x64 Native Tools Command…窗口。
2) 创建证书并保存,输入以下指令: makecert -r -pe -ss PrivateCertStore –n CN=MyTestSigningCert MyTestSigningCert.cer。 敲回车后提示 Succeeded

(3) 命令栏输入 certmgr.msc 打开证书管理查看到刚才的证书创建成功
注意:千万不要多次添加,如果看到有重复的必须手动删除。

( 4) 再次以管理员权限打开 Visual Studio 2012/2013 命令提示窗口,输入命令激活测试证书: bcdedit /set testsigning yes。
若出现以下报错

需要在开机时进入BIOS CMOS设置。把安全启动关闭。英文为 Secure Boot Policy。
然后再用管理员执行BCDEDIT的命令就可以了。
( 5) 接下来打开系统环境变量添加新的系统变量
变量名: TWINCATTESTCERTIFICATE
变量值: MyTestSigningCert
注意:做好以上步骤后必须重启电脑,你会发现电脑右下角显示以下内容

3.1.3在 64 位目标控制器中安装数字证书

如果所开发的 C++或者 Matlab/Simulink 模块运行在 EPC 或者 IPC 中, 那这台目标控制器也需要安装并配置 64 位数字证书。
(1)手动导出此授权,在 certmgr 中找到此证书, 右键导出

此前一直点默认选项即可

(2) 拷贝证书到控制中双击进行安装,点击 Install Certificate



(3) 随后打开 CMD, 输入命令激活测试证书: bcdedit /set testsigning yes

3.2创建 C++模块步骤

( 1)新建 C++项目 TwinCAT Driver Project,并且选择 TwinCAT Module Class 点击Add

( 2) 打开 TMC 文件,首先建立一个接口,右键 Data Types 点击 Add new interface

( 3)随后在新建接口下新增一个方法, 并且修改接口名字和 2 个方法的名字
例如:接口名: I_PLCcontrol
方法名: ADDMethod(函数接口,需要几个函数就添加几个method)

( 4) 分配此方法的返回类型是 INT 类型, 点击下图中红色方块

( 5) 找到 INT 类型点击确定

( 6) 在 ADDMethod 中添加 2 个行参, 分别是 Parameter1 和 Parameter2,类型都是 INT 类型

( 7)接口和方法创建好后, 对此接口进行注册实现,选择 implemented interfaces,点击加号

( 8)找到刚才创建的 I_PLCcontrol 进行添加

随后就出现在了 implemented interfaces 栏中
随后就出现在了 implemented interfaces 栏中

( 9) TMC 编辑完毕后,右键 C++项目点击 TwinCAT TMC Code Generator

在 Module1.cpp 中就可以看到新增的接口实现可以写代码

(10)写一个简单的算法, 2 个行参 Parameter1+Parameter2, 之后得到的结果给到返回类型

(11)写好实现代码后右键项目进行编译检查是否有错

( 12)编译没有错后我们可以支持把 C++写好的代码进行发布, 编译成二进制驱动文件, 也就是 TcCOM,这种类似 COM 组件的方式可以直接复制到没有完整版VS 的电脑中使用,优点是反复利用 TcCOM 组件, 保护源代码等等
重新打开 TMC, 选择 Deployment,选择需要发布的平台( 32 位还是 64 位,64位电脑可把62位删除)

( 13)重新更新下 TMC 文件

( 14)随后右键 C++项目选择 TwinCAT Publish Modules 进行模块导出

(15) 我们也可以通过路径 C:\TwinCAT\3.1\CustomConfig\Modules 找到导出的模块

在使用matlab生成的C++代码时,注意以下几点:
1.先对类进行声明,再在接口函数中进行调用

2.C++中数学库使用的头文件是#include ,在twincat中应使用#include “TcMath.h”
3.出现下面报错时

找到相应代码,更改为twincata的定义形式,如下所示将1中fmod函数改为2中的形式
(1). tmp = std::fmod(tmp, 256.0);
(2). tmp = fmod_(tmp, 256.0);
4.对于如下报错

在相应的c文件最前面添加
#include “TcPch.h”
#pragma hdrstop
5.将类定义的头文件中的输入和输出更改为public变量,如图中将
// External inputs
ExtU_Epin_Single_Test2_T Epin_Single_Test2_U;
// External outputs
ExtY_Epin_Single_Test2_T Epin_Single_Test2_Y;
变为public变量

3.3创建 PLC 项目调用 C++模块(PLC和C++不要放在一个工程里)

(1) 右键 TcCOM Objects 添加新项目

(2)选择 C++Modules 下添加之前发布的模块

( 3)新建 PLC 项目

( 4)添加功能块, 修改功能块名称并把 implements 打勾, 点击图片中红色选项。

( 5)从中找到之前在 C++项目创建好的接口 I_PLCcontrol

( 6) 选择好后点 OK

默认实现这个接口的功能块是空的, 所以里面有很多需要自己写

可以将不是自己定义的删掉
( 7)首先把不必要的一些 Method 删除, 只留下 ADDMethod, 并且如果希望此功能块可以调用 C++中 I_PLCcontrol,且可执行此接口中的方法, 就必须编写接口查找的代码, 而且此代码必须是执行功能块前就完成, 因此我们需要用到类似高级语言中构造函数的功能, 在 TC3-PLC 中也有着类似的功能, 右键功能块添加Method

8) 在下拉框中可以发现, TC3 中已经有 3 个特殊方法供我们使用, 其中 FB_init就是构造函数, FB_exit 就是析构函数, 我们依次添加这 2 个方法(这两个必须添加)

( 9) 接下来开始对功能块中 3 个方法编写代码, 以达到可以访问 C++接口, 并且使用接口下的方法目的

( 10) 接下来写简单的代码,以下代码仅供参考,截图如下:

( 11)在主程序中编写调用 C++中方法的代码

( 12) 右键 PLC 项目进行编译。

( 13) 为了把此功能块绑定 C++实例模块, 双击 PLC 项目的 instance, 选择 symbol initialization, 把 value 设置为所调用的 C++模块

( 14) active configuration 激活配置并且下载程序,可以发现 in1 赋值 123, in2 赋值 456,得到 out1 的结果自动就计算出是 in1 和 in2 的和为 579

3.4PLC和C++的I/O端口映射

3.4.1创建C++中I/O变量

(1)按照3.2(1)中步骤创建c++工程,选取下图所示的class

(2)双击 TMC Files 下的 test.tmc 开始创建变量

(3)点开 Data Areas 下的 Inputs 和 Outputs 可以发现系统已经创建了 3 个变量,可以用系统给的变量,当然也可以手动新建。

(4)先手动创建一个 Inputs 变量,右键 Inputs 下的 Symbols,选择 Add new symbol,

(5)把新建的变量名字和类型分别改成如图所示: Name: change; Select: bool。

(6)同样也创建一个输出变量 icount,类型为 int

(7)变量写好后右键 test Project,选择 TwinCAT TMC Code Generator 重新生成
TMC 代码。

(8)双击 Source Files 文件夹下的 Module1.cpp 开始写 C++程序, 程序编写在
//TODO: Replace the sample with your cyclic code 下面,也就是下图中红色部分,
可以发现新创建的 C++项目中已经自带一条简单的程序,我们可以删除,替换成
我们所需要的程序。

注:IO映射时C++的状态如下

使用matlab生成的C++代码时,在PREOP TO SAFEOP模块中添加初始化程序

在SAFEOP to PREOP中添加终止程序

在Cycle中正常添加运行程序

(9)把程序删除后用刚才创建的 2 个变量编辑一条简单的程序, change 导通
触发 icount 计数器累加计数的功能。

(10)程序写好后右键 test Project 选择生成开始编译 C++项目。

(11)右键 test 选择添加新项开始添加 C++接口模块,

(12)弹出窗口选择 CModule1[module]后点击 OK

(13)添加完成后可以在 test 这个 C++项目中看到此项目的一些 IO 变量,

(14)双击 test_Obj1(CModule1),把新建的 Task 分配给 C++项目,

3.3.2在PLC中创建I/O端口

(1)先创建PLC工程(使用Tccom接口的话需disable C++工程或在另一个工程下添加PLC)
(2)打开 POUs 下的 MAIN 编辑 PLC 程序,创建两个变量即可,

(3)程序写好后右键 test Project 选择“生成”开始编译程序。

(4)分别把 PLC 程序中两个变量链接到 C++程序中两个变量上去。
(5)打开菜单栏 TwinCAT,选择 Activate Configuration 把配置下载到控制器中,

(6)提示切换到运行模式点击确定

(7)在工具栏中点击“Login”把程序在线。

(8)随后点击“Start”把程序运行

(9)在 change 类型旁边的准备值点成 TRUE,如图

(10)工具栏找到“Write values”对 change 赋值

最终就可以观察到 icount 在不断做累加

倍福软件安装及注意事项相关推荐

  1. c++2013无法卸载_ADS软件安装卸载注意事项及问题解决办法

    一个专业提供大学生学习资料的公众号 1.如何下载软件和资料点这里:如何在公众号下载软件和资料 2.如果我的内容有幸帮到了你,请帮忙把公众号分享给更多的同学哈 安装和卸载注意事项 最近有很多同学咨询AD ...

  2. 倍福Twincat 3.0软件与C++通讯问题(ADS通讯)

    倍福Twincat 3.0软件与C++通讯问题 倍福公司所开发的Twincat 3.0软件是基于Visual studio开发环境的一款自动化软件,目前其与C++程序通讯的方式主要还是靠ADS-DLL ...

  3. 倍福(Beckhoff) 软件及资料分享

    倍福(Beckhoff) 软件及资料分享 一.倍福软件安装包 下载链接 二.倍福资料 倍福虚拟学院

  4. Linux学习笔记45——软件安装:源代码与 Tarball

    我们在第一章.Linux是什么当中提到了 GNU 计划与 GPL 授权所产生的自由软件与开放源码等咚咚.不过,前面的章节都还没有提到真正的开放源码是什么的讯息!在这一章当中,我们将借由 Linux 操 ...

  5. 【Linux命令】《鸟哥Linux基础》第二十一章 软件安装:源代码与Tarball

    第二十一章 软件安装:源代码与Tarball 了解:如何将开放源码的程序设计.加入函数库的原理.通过编译而成为可执行的二进制程序,最后该文件可被我们所使用的一连串过程. 这一章介绍最原始的软件管理方式 ...

  6. Note For Linux By Jes(16)-软件安装:原始码与 Tarball

    开放源码的软件安装与升级简介: 什么是开放源码.编译器与可运行档 什么是函式库: 什么是make与configure: 侦测程序会侦测的数据大约有底下这些: 是否有适合的编译器可以编译本软件的程序码: ...

  7. 倍福 BECKHOFF CX9020 是一款适合 DIN 导轨安装的紧凑型以太网控制器,如何做CAN隔离

    CX9020 是一款适合 DIN 导轨安装的紧凑型以太网控制器,采用的是 1 GHz ARM Cortex™-A8 处理器.用于连接倍福 I/O 系统的接口直接集成在 CPU 模块中.设备具有自动识别 ...

  8. 倍福ads通讯软件_倍福TwinCAT ADS通讯-高级语言.ppt

    倍福TwinCAT ADS通讯-高级语言 * ADS组件库文件组成简介 ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含ADS通讯组件,如果用户希望在没有安装TwinCA ...

  9. Database之SQLSever:SQLSever基础知识进阶、软件安装注意事项、软件使用经验总结之详细攻略

    Database之SQLSever:SQLSever基础知识进阶.软件安装注意事项.软件使用经验总结之详细攻略 目录 SQLSever基础知识进阶 SQL与T-SQL.PL-SQL的区别 数据库相关基 ...

  10. [转]Win 2008 R2安装激活、设置优化、可用杀毒软件、常用软件安装顺序与注意事项(三)...

    [转]Win 2008 R2安装激活.设置优化.可用杀毒软件.常用软件安装顺序与注意事项(三) 2011年05月16日 [b]2008R2要用什么杀毒软件?[/b] [b][/b] 找服务器版系统特别 ...

最新文章

  1. centos6.7部署solr-6.3.0
  2. mysql 时间日期类型 datetime、timestamp、date、time、year
  3. freetype-go学习
  4. 新建maven写页面_使用 IDEA 创建 Maven Web 项目 (三)- 编写一个简单的 WEB 应用
  5. jQuery UI基础 学习笔记
  6. 百度突然发公告:将停止这个服务!
  7. 页面右下角弹广告案例
  8. 分享几十年来记录下的编程技巧
  9. 市场调研策划书_市场调研计划书模板
  10. 网络规划设计师的参考资料和复习书籍
  11. html5shiv 无效,解决低版本IE关于html5新特性的兼容性问题html5shiv.js和Respond.js
  12. 【Linux应用】udhcpc命令获取到ip后,但是没有生效(没有设置进去)
  13. 三线表里加小短线_三线表的规范格式
  14. apache+php环境配置
  15. 美国国税局将允许纳税人通过现场面试选择退出 ID.me 面部识别
  16. server sql 将出生日期转为年龄_SQL语句如何根据出生日期计算年龄
  17. mysql analyze index_MYSQL优化 Analyze Table
  18. Swift 声明(Declarations)
  19. vue3 setup语法糖事件引用和写法
  20. 华为matex搭载鸿蒙系统,华为 MateX 推迟至 9 月上市,或预装鸿蒙系统

热门文章

  1. Android 开发即时聊天工具系列(8)
  2. 人人都是产品经理总结 第一章
  3. [和秋叶一起学ppt]四步搞定ppt风格标准化(笔记)
  4. 还有3天就要上班了,面试中灵魂拷问的问题送给你
  5. cydia红字解决方法(cydia安装软件时出现红字怎么解决)
  6. Iostream通用输入/输出流类
  7. 串口屏还是并口屏好用?
  8. 雷赛acc68c说明书_DMC2410C-A四轴通用型点位卡
  9. 通过使用 NTLite 工具实现精简Windows系统
  10. Linux系统配置静态IP地址步骤