- 博客(339)
- 资源 (20)
- 收藏
- 关注
原创 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT如何简单执行NC功能块 TC2
TC2的程序是在TC3的基础上稍作调整,只说明不同点,请先看TC3的。TC2中的一个原本是AXIS_REF类型变量被拆成了两个(PLCTONC_AXLESTRUCT和NCTOPLC_AXLESTRUCT结构体类型),并且都需要分别跟NC配置中的轴的FromPlc和ToPlc绑定 TC2中插入一个FB功能块是先添加一个Box,然后在方框中输入FB的函数名 接着插入
2017-10-17 22:01:22 3850
原创 倍福TwinCAT(贝福Beckhoff)基础教程7.1 TwinCAT 如何简单执行NC功能块 TC3
这一节我们介绍简单的NC运动(前面所讲的所有内容都是PLC编程和HMI的界面,算是基础知识),这里NC就是控制伺服电机的部分(当然还不是实际的NC轴,是虚拟轴,但是用到的函数都是一样,可以为后面的实际应用做准备),既然用到了贝福的NC功能,就要添加对应的库 首先添加一个让轴上使能的PRG(注意是FBD格式) 在第一个空行后面插入空运算块,然后在中间的???里面输入运
2017-10-17 22:01:20 12137
原创 倍福TwinCAT(贝福Beckhoff)基础教程6.1 TwinCAT如何与高级语言通讯
因为使用TwinCAT的人用途不同,重视点就不同。如果用来代替传统PLC+HMI做项目的,很少会需要用到跟高级语言通讯,但是如果是用来做运动控制平台如做机器人运动控制器的,就肯定会用到。不管是否用得上,读者都应该知道贝福能够实现跟大部分高级语言如C++,C#,JAVA等等的通讯,并且非常简单(具体介绍可以自己看PPT,本节演示TwinCAT与C#的几个典型范例) 本质上,ADS通讯
2017-10-17 22:01:17 5742 1
原创 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT如何执行系统命令
TwinCAT提供了一系列的执行Windows系统命令的方法Name描述NT_Shutdown关机操作系统NT_AbortShutdown取消关机操作系统命令NT_Reboot重启操作系统NT_GetTime获取本机系统时间NT_SetLocalTime设置本机系统时间NT_StartProcess启动一个Windows的应用程序NT_SetTimeToRTCTime同步本地系统时钟和PC实时
2017-10-17 22:01:14 4255
原创 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-4 获取本机名称和网卡名称
使用命令FB_GetHostName来获取本机名称,返回的是一个字符串 使用命令FB_GetAdaptersInfo获取网卡信息(注意采集到的是一个非常复杂的类型,本身是一个数组,数组的每个元素又包含了网卡的物理地址,名称,IP地址等等) 为了显示方便,只显示了有效网卡数量和第一块网卡的名称(在HMI输入的时候,可以利用TwinCAT的自动提示,XXX变量名.就会自
2017-10-17 22:01:12 1885
原创 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-3 读写注册表
读写注册表和读写文件一样,里面涉及的输入类型比较复杂,需要参考官方范例sSubKey是指注册表的路径sValName是指注册表要写入的名值对的名称eValType是一个枚举类型(而且不是什么常规的枚举类型,你可以输入eValType.XXX来查看所有的类型,但是实际上只要照抄就行了)cbData就是要写入的数据(LEN(XXX)其中XXX就是字符串类型,我们必须按照一样的格式用LE
2017-10-17 22:01:09 1831
原创 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-2 运行可执行文件
个人认为这条命令做的参数比较混乱,PATHSTR是指可执行文件路径+最终文件名,DIRNAME是指可执行文件路径,最后COMNDLINE可有可无,是指带参数运行启动的文件 测试可以正常运行
2017-10-17 22:01:06 2355
原创 倍福TwinCAT(贝福Beckhoff)基础教程5.1 TwinCAT-1 获取和设置系统时间
使用功能块NT_GetTime,NETID填写两个单引号表示本机,START就是一个触发信号,一般的功能块都需要一个上升沿触发执行,最后的输出类型都是让系统自己决定,然后统一把这些变量放到全局变量中(个人认为比较好的编程习惯),以方便查看 采集到的时间是一个比较特殊的类型,我们可以右击查看这个结构体包含的东西,也可以在运行起来之后,看执行完成之后,这个变量中的每个元素数据是否跟本机
2017-10-17 22:01:04 5104
原创 倍福TwinCAT(贝福Beckhoff)基础教程4.2 TwinCAT如何读写CSV文件
本程序只是在官方范例程序上稍作修改,在官方原有的范例中,演示了多种模式的读写(可以认为CSV文件是比TXT文件需要更多数据量的时候使用,比如记录一个小型的数据库集合) 但是写的比较混乱,甚至没有HMI的界面,读者需要学会快速在程序中找到输入输出,例如TextModeWrite(以文本方式写CSV文件),至少需要定位到触发的BOOL变量,要写入的文件地址和文件夹,要写入的数据这几个变
2017-10-17 22:01:01 4749
原创 倍福TwinCAT(贝福Beckhoff)基础教程4.1 TwinCAT如何读写TXT文件
TwinCAT提供了FB_FileRead等一系列读写文件的方法,本小程序演示的是多个贝福自带的FBD功能块连起来用的方法,跟前面讲的一样,建议在初始化的时候把所有FBD都复位,准备使用 真正的读取文件流程是打开-读取-关闭,任何一个环节都有可能出错(比如打开文件找不到这个文件,读取文件读到的数据和要放入的变量不匹配,关闭的时候由于文件在使用出错),在写PLC程序的时候,一个状态(
2017-10-17 22:00:58 9676 2
原创 倍福TwinCAT(贝福Beckhoff)基础教程3.1 TwinCAT如何编写简单的计算器
把编写简单计算器作为入门的第一个范例程序,主要是因为比较简单,而且综合了HMI,数据类型,数据转换,PRG和FBD等功能块的混合等知识,个人认为还是比较适合用来快速上手的。由于是第一个范例,所以视频教程和文档说明都会比较详细(学习能力较强的可以跳着看,后面范例的说明会逐渐减少) 添加一个PLC,随便取个名字 首先是把人机界面做好,最简单的计算器需要实现加减乘除的功能,右击V
2017-10-17 22:00:55 22779 1
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_字符串
一般声明字符串都会加一个长度的限制,比如A:STRING(80);至于真实的字符串长度不要超过这个限制即可 在测试中,我演示了两个字符串的方法,CONCAT字符串拼接和REPLACE字符串替换。拼接不用说,替换比较特殊,第一个参数是输入的字符串(要被替换的字符串),第二个参数是要替换成的新字符串,第四个参数是输入字符串的起始替换下标,第三个是替换字符个数。比如'Hello '从第2
2017-10-17 22:00:52 5028
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_数组
声明和实例化数组的方法如下,你可以声明各种基本类型的数组i: INT;array1: ARRAY [0..500] OF INT; FOR i := 0 TO 5000 DO array1[i] := i;END_FOR 也可以声明下标不从0开始的数组,比如array2和array3就都不是下标从0开始的数组 事实上,声明多维数组可以使用数
2017-10-17 22:00:50 6311
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_指针
定义pt为指向INT类型的指针,在程序中取得var_int1的地址(INT类型),然后将地址对应的数据还原给var_int2(pt^的写法) 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/
2017-10-17 22:00:47 2886
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_结构体
在DUTs文件夹上右击添加结构体,结构体中可以放基本变量类型,也可以嵌套其他结构体 使用的时候,需要声明结构体的实例,然后按照类.属性的格式来读写变量,会有代码的自动提示 你也可以声明数组,类型就是自己定义好的结构体,访问的时候,数组指定元素.属性即可(如Struct2[0].Var1) 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空
2017-10-17 22:00:45 10661 1
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_枚举
在Duts的文件夹上右击,可以声明一个枚举类型,按照格式填写所有类型(注意枚举的元素前面都是逗号,最后一个不需要符号) 在正常使用的时候,枚举的单词可以当全局变量来用 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot
2017-10-17 22:00:42 2600
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_函数块
右击POUs,添加一个FB功能块,相比于FUN,FB功能块有INPUT,OUTPUT,还有VAR,即FB可以有多个输出,但是整个FB没有返回值 实现相同的功能,FB要比FUN难看的多,FB要声明实例,此外注意前面是赋值符号(给FB的几个输入参数赋值,然后最后输出是=>符号,即把FB的某个输出参数灌给指定的主程序变量) 但是FB有一些别的好处,尤其是在写复杂算法的时候
2017-10-17 22:00:39 1896
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_函数
右击POUs可以增加一个函数,需要指定函数名,返回类型 增加完成之后会自动创建函数的格式,注意VAR_INPUT是指函数的输入,VAR是指临时变量(这些都是自己写的,比如要定义一个简单加减乘除的函数,至少需要A,B 两个运算数据,还需要一个操作符,我们把中间结果保存到变量C中,最后让函数名等于需要的结果即可,是否加RETURN语句都行) 函数是最简单的一种面向
2017-10-17 22:00:36 2503
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.1 TwinCAT常见类型简介
常见数据类型可以参考EXCEL表格的内容,在准备值中输入非法数据,然后回车会有错误提示(例如BYTE数据输入256) 右击可以切换二进制或十进制显示,wData5可以被挨个采集每个位上的数据,也可以使用类型转换把BOOL和STRING来回转换 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaoha
2017-10-17 22:00:33 2727
原创 倍福TwinCAT(贝福Beckhoff)基础教程1.2 TwinCAT安装配置
由于TC2和TC3都有可能用到,个人推荐都安装,但是注意必须是先安装的TwinCAT2,然后安装TwinCAT3,如果反了可能两个都没法用(打开TcSwitchRuntime提示Both TwinCAT are activated,这样你一个也无法禁用),如果是这种情况请先把两个都卸载了,如果已经安装了TwinCAT2,则在安装TwinCAT3的时候,会自动检测是否存在TwinCAT2,如果有就自
2017-10-17 22:00:31 13913 1
原创 倍福TwinCAT(贝福Beckhoff)基础教程2.0 TwinCAT常用快捷键
F5:运行程序CTRL+F5:停止运行当前程序F12:登出F11:登录CTRL+F7:强制写入数值 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/ 问题交流:QQ
2017-10-17 22:00:28 3185
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 88怎么办
请确认在TWINCAT在线模式下,把Drive的Modes of operation改为8 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/ 问题交流:QQ:9103
2017-10-17 22:00:25 2891
原创 倍福TwinCAT(贝福Beckhoff)基础教程1.1 TwinCAT背景知识
本节附件中有很多PPT介绍贝福TwinCAT和EtherCAT的相关技术,在此只做简单说明。简单总结:EtherCAT就是一种总线技术,具有速度快,稳定性高,布线简单等优点,详细可以参考下面这个PPT(不是说其他总线就不行,只是说这个很优秀) 简单总结:TwinCAT就是贝福推出的基于PC的软PLC软件,软PLC可以摆脱传统PLC的编程复杂(比如懂西门子的不懂三菱,台达甚至国产
2017-10-17 22:00:22 6271
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 24.0怎么办
24.0 位置偏差过大保护 读取驱动器参数之后,在基本的014项目把设定值设置为最大,然后点击传送,EEP写入驱动器后重启驱动器即可 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com
2017-10-17 22:00:20 2707
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 40怎么办
出现这种错误的时候,我把一套测试完好的电机和驱动器,直接把跟电机连接的线拔掉换另一个电机,驱动器所有参数不变,这样由于是绝对值编码器的,所以驱动器已经记住了上一个电机的圈数,换了新的电机之后圈数不对了所以报错。 打开监视器,然后右下角有一个清除多圈数据,完成之后点击清除警告即可 网上还有一个说法是用控制面板来操作,但是我用的驱动器面板都没法用http://zhi
2017-10-17 22:00:17 3530
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 81.0怎么办
同步周期有问题 请确认MOTION的伺服周期是一致的,最好跟MAIN主程序也一样,所有周期都是2ms即可 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/ 问题
2017-10-17 22:00:14 1510
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器试运行提示过速度保护怎么办
在试运行的时候,取消勾选自动设定,然后可以自己设置过速度等级设置和过载等级设置 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/ 问题交流:QQ:910358960邮箱:a
2017-10-17 22:00:11 1674
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 21.0怎么办
编码器通讯断线异常保护,一般就是通讯线松动或者受干扰(最难以排查的情况是,我接了六套驱动器和伺服,比如J0的线是随便做的,其他五套都是西门子的合格网线,我运行程序的时候,J0如果单关节运动没任何问题,接着加入J1,J2也没问题,但是当再加入多余三个电机之后,J0就会随时报错21.0,在贝福中扫描得到的结果是18000错误),为了确认是编码器线受干扰而不是程序的问题,你可以把J0和J1的所有线对调,
2017-10-17 22:00:09 3424
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器如何执行绝对值清零
点击参数-参数一览,然后修改015为0(设置为绝对编码器方式),点击设定值变更,然后传送,EEP,将参数写入驱动器(保持USB线连接,重启驱动器并确认参数确是改成0了) 监视器-清除多圈数,清除之后多圈数据会变成0(再次重启驱动器) 重启之后可能会报警(绝对值编码器异常报警),清除报警之后即可试运行 更多教学视频和资料下载,欢迎关注以下信息:
2017-10-17 22:00:06 4286
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下绝对值驱动器如何做初始化设置
安装调试软件PANATERM 6.0,完成之后可以自动检测到连接的设备(如果软件是之前的版本,则可能无法准确识别A5B系列) 点击试运行,伺服关闭,然后会发现伺服开启按钮可用了 测试正反转没有问题 进入其他-引脚定义设定 把07,08,09号设置为无效(双击对应项目弹出窗口,然后鼠标点击三个无效,点击之后背景为蓝色的就是当前设置的状态
2017-10-17 22:00:03 4013
原创 倍福TwinCAT(贝福Beckhoff)基础教程 松下官方软件开启报错伺服未就绪怎么办
一般是伺服到电机的动力线没接好(请查看动力线接线是否正确) 更多教学视频和资料下载,欢迎关注以下信息:我的优酷空间:http://i.youku.com/acetaohai123 我的在线论坛:http://csrobot.gz01.bdysite.com/ 问题交流:QQ:910358960邮箱:acetaohai123
2017-10-17 22:00:00 2859 1
原创 JAVA Eclipse 启动 Eclipse 弹出“Failed to load the JNI shared library jvm_dll”怎么办
原因1:给定目录下jvm.dll不存在。 对策:(1)重新安装jre或者jdk并配置好环境变量。(2)copy一个jvm.dll放在该目录下。 原因2:eclipse的版本与jre或者jdk版本不一致 对策:要么两者都安装64位的,要么都安装32位的,不能一个是32位一个是64位。 原因2的概率更大一些,原因1不太可能发生
2017-10-17 21:59:55 322
原创 JAVA Eclipse中如何简易的实现消息机制
大部分情况下,我们需要实现的消息机制无非是某个类得到了数据,需要传递到某个主界面上去显示,可以把这个消息在类中做成全局变量,主界面的类用一个线程定时扫描,如果这个数据不是空,则说明被类刷新了,那么更新主界面的数据,更新完成就把这个数据清空,这样下次判断如果为空,则不更新,直到被某个子类刷新位置再更新。但是即便如此,还是没那么简单,比如我在主程序中,死循环不断输出一个int类型变量的值,使用了两
2017-10-17 21:59:50 552
原创 JAVA Eclipse中的Android程序如何使用线程
我们先单独定义一个java类,名字可以任意取(比如叫做ClientHeartBeat类,我当前在做一个socket通信的客户端,我们假定需要一个可以测试心跳的程序),注意他要继承Thread,然后重载run方法(必须是重载run方法中写你要的自定义功能) 在我们要使用的时候,定义一个类的实例,然后执行start方法,注意其实start方法就是执行的run方法,但是两个名字都不能变。
2017-10-17 21:59:47 523
原创 JAVA Eclipse如何重新设置工作空间workspace
窗口-首选项-常规-启动和关闭,勾选启动时提示工作空间,然后移除现有的工作空间,最好也勾选启动时刷新工作空间 重启之后就可以设置工作空间了
2017-10-17 21:59:45 7497
原创 JAVA Eclipse如何修改Android程序名称
Values中修改strings.xml中的app_name即可 注意他是连接到AndroidManifest.xml文件的
2017-10-17 21:59:42 1269
原创 JAVA Eclipse如何重命名包
选中某个包之后按F2即可 注意,重命名包不能有大写,而且必须有至少两级(xxx.xxx就是两级) 重命名包之后,你要修改manifest.xml文件
2017-10-17 21:59:40 12340
原创 JAVA Eclipse如何设置点击按钮切换图片
右击图片文件夹,新建一个Android XML文件 设置文件的名称,注意这个新建的xml文件就是会被用作按钮的background属性的,所以名字不要太奇怪,设置Root Element为selector之后,添加下面黄色的两行,按钮常规和按下的时候对应的图片,这里注意都是对应的前面放进去的图片xml version="1.0" encoding="utf-
2017-10-17 21:59:34 6696
C#的核心问题-编译器-如何在进程之间进行通信,如何在两个独立的EXE文件之间通信.rar
2020-06-28
C#的核心问题-WIN10系统无法响应触摸屏的按下和弹起事件怎么办.rar
2020-06-28
C#的控件使用:树形图TreeView如何实现序列化和反序列化.rar
2020-06-28
C#的控件使用:如何使用2D绘图控件ZedGraph绘制坐标轴和坐标曲线.rar
2020-06-28
C#.NET常见问题(FAQ)-如何使用DataGridView跟Excel数据交互.rar
2020-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人