倍福Ads协议通信测试】的更多相关文章

测试环境:vs2015 + TC31-Full-Setup.3.1.4022.30.exe 首先需要安装TC31-Full-Setup.3.1.4022.30.exe 本例子是用本机作测试,如果使用远程plc控制器作测试,改成实际的IP和PORT即可 添加C#窗体程序,下述是读取的结果 添加plc程序 启动plc:第一步 Active Configuration,第二步Restract TwinCat System(绿色按钮),第三步登陆 C#代码 using System; using Sys…
倍福TwinCAT3上位机与PLC通信测试(ADS通信) 包含C#和C++代码 本次测试需要环境: VS2013,TwinCAT3(本人版本TC31-Full-Setup.3.1.4018.16) 代码:C#代码,PLC程序代码,C++代码(官方提供)  测试部分:  测试包含:bool类型,int类型,long类型,real类型,lreal类型,string类型,数组,以及结构体 部分测试(这里没有结构体嵌套) PLC程序Main程序 基本类型部分 代码: PROGRAM MAIN VAR B…
本文将使用库技术来读写倍福PLC数据,使用的是基于以太网的ADS实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 github地址:https://github.com/dathlin/HslCommunication 如果喜欢可以star或是fork,还可以打赏支持,打赏请认准源代码项目. 联系作者及加群方式:http://www.hslcommunication.cn/Cooperation 在Visual Studio 中的NuGet管理器…
ADS协议是倍福产品的通信协议,在双击ADS协议图标后打开如下图的配置窗口. 变量配置表中各列的含义: 报警类型: 脚本: 当设置了报类型时,在运行时如果变量值引发报警时将执行一次脚本.例如 大于报警 当变量值大于报警设定值(AlertsValue)时,执行这个脚本. ID:是变量的索引号 SID:是变量所在设备的编号 VariableName:是变量名,变量名的命名方式:程序段名.变量名.如:GVariableListDL.RunStop .GVariableListDL:就是全局变量表的名称…
在前面一节,我们简单介绍了通过PLC+HMI实现完整控制松下伺服的上使能-运动,采集位置,速度等功能,这里我们会大量简化用到的贝福功能块(为了更加实用).首先依然是对单个轴的封装,我们之前的做法,例如伺服上使能,使用了MC_Power模块,这个模块的输入和输出引脚都是自己定义的变量,比如是否上电成功我们是靠AxisPowerReady的信号来判断的,如果有两个甚至多个伺服的时候,这样做就很不方便管理了,所有的同类型变量都应该用数组统一管理.   改变之后的上使能,就变成了调用一个模块(我们把Ax…
1.新建工程 新建TwinCAT XAE Project 2.连接设备 点击SYSTEM,再点击"Change Target..." 在弹出的"choose Targt System"界面,点击"Search(Ethernet)". 点击"Boradcast Search". 选择连接plc的网口. 当出现扫描到的plc为cx开头,点击"Add Route". 在弹出的"Add Remote Ro…
鼠标放到任意一个参数上停留一段时间,会自动弹出关于该条参数的ADS信息   TC3也是一样(如果不是轴的某个参数而是PLC程序绑定的某个变量也是一样,定位到这个变量既可以看到ADS信息)       更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123   我的在线论坛: http://csrobot.gz01.bdysite.com/   问题交流: QQ:910358960 邮箱:acetaohai123@163.com…
因为使用TwinCAT的人用途不同,重视点就不同.如果用来代替传统PLC+HMI做项目的,很少会需要用到跟高级语言通讯,但是如果是用来做运动控制平台如做机器人运动控制器的,就肯定会用到.不管是否用得上,读者都应该知道贝福能够实现跟大部分高级语言如C++,C#,JAVA等等的通讯,并且非常简单(具体介绍可以自己看PPT,本节演示TwinCAT与C#的几个典型范例)   本质上,ADS通讯就是一种TCP/IP通讯,是没有实时性的,不能作为运动控制的通讯方式从上位直接丢数据.   在官方范例程序的第三…
对于相对编码器类型轴(包括虚拟轴),可以使用贝福提供的找原点功能块MC_Home.   HomingMode是指机器在往前跑的时候(30单位/s的默认速度),当碰到阻挡,则会有一个布尔值从FALSE改成TRUE,此时认为超过了零点.然后该轴反向运动,一定能捕捉到TRUE改成FALSE,然后就停下,认为当前位置是原点(不一定是0位置,你Position是多少就将当前位置设置为多少)   在虚拟的轴测试中,可以做一个按钮,按下为TRUE,松开为FALSE.当点击HOME之后,该轴的位置马上变成很小的…
有时候,让电机从0度转到绝对的360度,有时候会出现电机实际转动更多或者更少的情况.   一般是电机的编码器的Scaling Factor Numerator数值不对导致的,数值越小,则同比转过角度越多,例如我数值是0.0001的时候,360度实际对应了720度以上,我改成0.00035之后,就差不多了.   那么如何精确的设置这个参数呢?参考讲义说一圈对应的脉冲数和一圈对应的长度(注意TwinCAT默认单位是mm,可以改成角度,那么一圈对应就不是360mm而是360度,同样可以360/一圈对应…