Twincat 调试及遇到的问题

2023-11-06 03:40
文章标签 问题 调试 遇到 twincat

本文主要是介绍Twincat 调试及遇到的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

524288 count = 360° = 2π rad

1 count = 360°/524288 = 2π/524288 rad

1 count = 0.00069° = 1.2e-5 rad

常见的数据:
43690.67 count = (360/12)30° = π/6 rad

87381.33 count =(360/6) 60° = π/3 rad

131072 count = (360/4)90° = π/2 rad

155622 count = 106.86° = 1.865 rad  (Position of the contact point in the experiment)

174762.67 count = (360/3)120° = 2π/3 rad

262144 count = (360/2)180° = π rad

一般的Twincat调试步骤:

  1. 准备环境:确保Twincat软件已经安装并正确配置了目标设备(如PLC或运动控制器)。确保与目标设备连接的硬件(如通信模块、电缆等)已经正确连接。

  2. 项目设置:在Twincat中创建一个新的项目或打开一个现有的项目。确保项目设置中的目标设备和通信参数正确配置,以便与目标设备进行通信。

  3. 编程和编译:使用Twincat的开发环境(如TwinCAT XAE)编写或修改PLC程序代码。确保程序逻辑和功能符合要求。然后编译程序,生成可执行的二进制文件。

  4. 下载和运行:将编译好的程序下载到目标设备中。通过Twincat软件与目标设备建立连接,选择下载程序,并启动程序执行。在这个过程中,可以监视和调试程序的运行状态。

  5. 监视和调试:使用Twincat提供的调试工具和功能,监视程序的运行状态和变量的值。可以设置断点,逐步执行程序,并观察变量的变化。还可以通过IO监视窗口查看和操作与目标设备连接的输入输出信号。

  6. 故障排除和优化:如果发现程序运行中的错误或异常,可以使用Twincat的调试工具来进行故障排除。通过查看日志、变量值和程序执行路径,可以找出问题所在并进行修复。此外,还可以使用Twincat的性能监视工具来分析程序的性能,并进行优化和调整。

System Manager叫做NC Task SAF任务周期,默认值为2ms。 另一个NC周期,NCPLC交换数据周期,比如NC状态、当前位置、使能信号等等,都是以这个周期刷新TwinCAT System Manager叫做NC Task SVB任务周期,默认值为10ms,与PLC程序默认任务周期一致。

快速点动存在的问题:

 4650驱动器报警

0x4650

 意思是:

 

Scaling Factor Numerator scaling Factor Denominator 值均设置为 1,即主 站 NC 轴控制时发送 1 个单位,从站伺服走 1 个编码器脉冲位置(plus

 运动参数配置

调整为最大180°半圈:

180°=3.14rad=524288mm

 

 

修改完毕后,激活参数配置

默认参数如下:
 

 

 

 

 

 

 

 

 

 

 

 

 

 

eRob80 关节模组为例,相关参数可在 ZeroErrServo 上位机读取获得(如
4-39 ),也可通过读取对象索引地址 607Fh 6081h 6083h 6084h 获得(详见 2.1 节表 2-1 )。

 

 

 

 严重性    代码    说明    项目    文件    行    禁止显示状态
错误        2023/7/18 11:32:17 543 ms  | 'TCNC' (500): 'Axis 1' (Axis-ID: 1, Grp-ID: 1): Group function is rejected with error-code 0x4650 or the function is not supported !                

__________________________________________________________

20230718.21:44

0x4630 … 0x463F: Error codes are reserved for external motion controller errors (e.g. stepper motor terminal or function block MC_PowerStepper).

0x4630…0x463F:错误代码保留给外部运动控制器错误(例如步进电机端子或功能块mc_powerstep)。

 ‘Drive hardware not ready to operate’ The drive hardware is not ready for operation. The following are possible causes:
- the drive is in the error state (hardware error)
- the drive is in the start-up phase (e.g. after an axis reset that was preceded by a hardware error)
- the drive is missing the controller enable (ENABLE)
Note: The time required for "booting" a drive after a hardware fault can amount to several seconds.

' Drive hardware not ready to operate '驱动器硬件没有准备好进行操作。可能原因如下:

  1. -驱动器处于错误状态(硬件错误)
  2. 驱动器处于启动阶段(例如,在硬件错误之前的轴复位之后)
  3. -驱动器缺少控制器enable (enable)

注意:硬件故障后“启动”驱动器所需的时间可能长达几秒钟。

————————————————————————————————————

 17510 (0x4466)

超过n个NC循环的无效IO数据(编码器)

轴(编码器)已经检测到超过n个后续NC周期(NC SAF任务)无效的编码器IO数据(例如n=3)。通常,关于EtherCAT成员,它是关于工作计数器错误(WcState),它显示IO设备和控制器之间的数据传输受到干扰。

如果此错误连续设置较长时间,则这种情况可能导致丢失轴引用(“归巢”标志将被重置,编码器将获得“未引用”状态)。

产生此错误的可能原因:EtherCAT从机可能已经离开了其OP状态,或者实时使用过高或实时抖动过高。

 

 

————————————————————————————————————————

Twincat的上位机上使用零差云控驱动器为什么不能触发电机使能???

伺服故障代码请查看对象字典0x603F,故障信息说明请查看,eRob CANopen and EtherCAT用户手册v1.5《第七章 错误处理》

Drive 3 (ZeroErrDriver)' (1003): CoE(lnitDown' 0x603f:00) -SDO Abort ('Attempt towrite a read only object.'.0x06010002)

 

 

TwinCAT3 主站为例,通过 SDO 访问释放刹车参数对象 4602h Release Brake
写入值 1 ,操作方法如图 ,点击“ Device 2(EtherCAT) ”,点击“ Drive1(zeroErr Driver) ”,
点击“ CoE-Online ”,下拉找到对象“
4602 ”,左键双击此参数对象,弹出“ Set Value Dialog
界面,在“ Dec ”值输入 1 ,最后点击“ OK ”,则制动器处于释放(非制动)状态,写入值 0
则制动器处于闭合(制动)状态。

错误类型: 通信错误
位: 3
conflt: 4004
ErrorCode: 0xA000
提示信息: 主站掉线或退出OP至非OP状态
直接原因: 占位
间接原因: 可能原因.......
排查建议: 排查建议......
----------------------------------------------
错误类型: 功率错误
位: 6
conflt: 1009
ErrorCode: 0x3220
提示信息: 母线电压欠压
直接原因: 母线电压低于最低允许电压设置
间接原因: 可能原因.......
排查建议: 排查建议......
----------------------------------------------

 固件版本号 :130712200
硬件版本号 :1001
硬件配置参数 :1
当前连接ID :11
PeakTime值与出厂值不相等
标准值 :  4000      当前值 :  11000
MaxCurrErr值与出厂值不相等
标准值 :  32018      当前值 :  33000
MaxPhaseCurr值与出厂值不相等
标准值 :  32018      当前值 :  33000
MaxMotorCurr值与出厂值不相等
标准值 :  32018      当前值 :  33000
Accel值与出厂值不相等
标准值 :  5566      当前值 :  55660
Decel值与出厂值不相等
标准值 :  5566      当前值 :  55660
Speed值与出厂值不相等
标准值 :  5566      当前值 :  55660
CtrlSource值与出厂值不相等
标准值 :  0      当前值 :  1
SoftPosErr值与出厂值不相等
标准值 :  5242      当前值 :  0
SoftVelErr值与出厂值不相等
标准值 :  42000      当前值 :  0
SoftStuckTime值与出厂值不相等
标准值 :  1000      当前值 :  0
SoftStuckVel值与出厂值不相等
标准值 :  524      当前值 :  40000

 

 90I1A 00003700

NC 参数设置
Parameter 选项卡中需要设置一些 NC 的参数, Reference Velocity 是参考速度,一般
Maximum Velocity 110% Maximum Velocity 是轴的最大速度, Default Dynamics 展开
可设置加减速, Manual Motion and Homing 是点动和寻参的速度, Fast Axis Stop 是设置快
速停止, Limit Switches 可以设置开启软限位, Monitoring 可以设置跟随误差的监视。
——————————————————————————————————————————

这篇关于Twincat 调试及遇到的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354253

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo