倍福软件安装及注意事项
- 一、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.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 文件安装包进行安装。(安装前卸载各类安全卫士和杀毒软件)
选custom可自定义安装路径,安装文件默认即可。
(4)选VS环境,红框内也要勾选
(5)点击 Install 进行安装,安装好后选择 Yes 重启。
1.2最后安装帮助文档
1.
这样就完成了 TwinCAT3 的安装。
win10系统需在安装路径下(我的为E:TwinCAT3.1System),以管理员身份运行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.环境配置
(1)双击 KitSetup.exe
(2)选择“Build Environment”后点击 OK
(3)弹出窗口点击 OK,选默认即可,后续还会用到路径
(5)安装完成后点击 Finish 结束
(7)点击系统变量下的“新建”,分别填入变量名和变量值,
变量名: WINDDK7
变量值: C:WinDDK7600.16385.1
(8)设置好后会出现在系统变量中
( 4) 再次以管理员权限打开 Visual Studio 2012/2013 命令提示窗口,输入命令激活测试证书: bcdedit /set testsigning yes。
3.1.3在 64 位目标控制器中安装数字证书
如果所开发的 C++或者 Matlab/Simulink 模块运行在 EPC 或者 IPC 中, 那这台目标控制器也需要安装并配置 64 位数字证书。
(1)手动导出此授权,在 certmgr 中找到此证书, 右键导出
此前一直点默认选项即可
3.2创建 C++模块步骤
( 1)新建 C++项目 TwinCAT Driver Project,并且选择 TwinCAT Module Class 点击Add
( 3)随后在新建接口下新增一个方法, 并且修改接口名字和 2 个方法的名字
例如:接口名: I_PLCcontrol
方法名: ADDMethod(函数接口,需要几个函数就添加几个method)
( 5) 找到 INT 类型点击确定
( 7)接口和方法创建好后, 对此接口进行注册实现,选择 implemented interfaces,点击加
(11)写好实现代码后右键项目进行编译检查是否有错
( 13)重新更新下 TMC 文件
(15) 我们也可以通过路径 C:TwinCAT3.1CustomConfigModules 找到导出的模块
(2)选择 C++Modules 下添加之前发布的模块
( 4)添加功能块, 修改功能块名称并把 implements 打勾, 点击图片中红色选项。
( 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中正常添加运行程序
(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端口
(3)程序写好后右键 test Project 选择“生成”开始编译程序。
(4)分别把 PLC 程序中两个变量链接到 C++程序中两个变量上去。
(5)打开菜单栏 TwinCAT,选择 Activate Configuration 把配置下载到控制器中,
(6)提示切换到运行模式点击确定
(7)在工具栏中点击“Login”把程序在线。
(8)随后点击“Start”把程序运行
(9)在 change 类型旁边的准备值点成 TRUE,如图
(10)工具栏找到“Write values”对 change 赋值
最终就可以观察到 icount 在不断做累加
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!