一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

参数设置

I/O-Devices-Device 3 (找到对应的设备)-Term1(EK1100)-Term2(EL7031)-Coe Online

8010:01 最大电流设置为600mA;
8010:02 保持电流设置为300mA;
8010:03 正常电压设置为24000mV;
8010:06 满步设置为200,表示1圈走200个脉冲;
备注:以上参数和具体电机型号有关。

8012:01:操作模式设置为Automatic;
8012:08:反馈模式设置为Encoder(外部光栅尺反馈);
8012:05:基频设置为2000,表示1秒走2000个脉冲,即1秒走10圈,即速度为3600°/s。

比例因子设置
按长度设置(默认)
假设减速比12:1,丝杆导程1mm,Axis1-Enc-Parameter-Scaling Factor Numerator设置为 0.0005,表示1个脉冲走0.0005mm,Scaling Factor Denominator设置为默认值1。
电机转12圈
= 减速机输出轴转动1圈
= 平移台移动1mm
= 光栅尺输出2000个脉冲
Scaling Factor Numerator=1/2000=0.0005
在Motion-NC-Task 1 SAF – Axes – Axis 1 – Parameter 中的Reference Velocity 和Maximum Velocity设置为0.83333333mm/s(1s走10圈,电机12圈走1mm,对应1s走0.8333mm)(单位只是参考,没有实际意义)。

按角度设置
假设减速比12:1,丝杆导程1mm ,Axis1-Enc-Parameter-Scaling Factor Numerator设置为0.18,表示1个脉冲走0.18°,Scaling Factor Denominator设置为默认值1。
电机转12圈
= 减速机输出轴转动1圈
= 平移台移动1mm
= 光栅尺输出2000个脉冲
Scaling Factor Numerator=360/2000=0.18
在Motion-NC-Task 1 SAF – Axes – Axis 1 – Parameter 中的Reference Velocity 和Maximum Velocity设置为3600°/s(单位只是参考,没有实际意义)。

光栅尺反向

根据光栅尺的安装情况设置。

寻参

链接零位检测信号和PLC地址,EL7037-ENC Status compact-Status-Status of input C,链接到PLC程序Main.Axis_13_CaliCam中。
设置寻参速度为0.02mm/s(寻参速度经过测试,要很慢,不然读不出来)

 设置NC和PLC的周期为5ms(因为扫描周期过长的话,参考零点的IO量读取不到)
刚开始测试时,偶尔可以读到参考点信号,大部分读不出来,后来发现是采样频率过低(PLC和NC的周期过长),寻参速度降低并扫描周期缩短后,可以读到参考点信号。

 参考零位的信号,从Input C读取。

 最终的参考点信号,如下图所示

 寻参模块的思路如下:
寻参时,先快速走到负向极限位置,再快速正向走9mm接近参考点,然后运行寻参模块MC_Home,先正向走,过零位后出现脉冲,再正向走一点,再反向走再次到达零位后停止。

 寻参PLC程序如下:
FB模块变量定义:

复制代码
 1 FUNCTION_BLOCK Axis13_PTP EXTENDS Axis_Base_PTP
 2 VAR_INPUT
 3 END_VAR
 4 VAR_OUTPUT
 5 END_VAR
 6 VAR
 7     mcHome: MC_Home;
 8     mcHaltStep: MC_Halt;
 9     mcMoveRelaStep2: MC_MoveRelative;
10     mcMoveRelaStep1: MC_MoveRelative;
11     mcResetStep: MC_Reset;
12 END_VAR
13 VAR_STAT
14     bStep1 :BOOL :=FALSE;
15     bStep2 :BOOL :=FALSE;
16     bHome :BOOL  :=FALSE;
17 END_VAR
复制代码

Method模块变量定义:

复制代码
 1 METHOD PUBLIC M_Home : BOOL
 2 VAR_INPUT
 3     bExcute     : BOOL;
 4     bCalibrationCam : BOOL;
 5 END_VAR
 6 
 7 VAR_OUTPUT
 8     bDone    : BOOL; (* B *)
 9     bBusy    : BOOL; (* V *)
10     bActive  : BOOL; (* V *)
11     bError   : BOOL; (* B *)
12     dErrorID : UDINT;(* E *)
13 END_VAR
复制代码

 

posted on   一杯清酒邀明月  阅读(154)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
历史上的今天:
2022-08-04 Qt 生成dump文件及windbg调试(进阶版)
2022-08-04 Windows下的Qt编译器 - MinGW和MSVC的区别
2022-08-04 Qt MSVC与MinGW的区别
2022-08-04 Qt 建立带有子项目的项目,以及子项目之间的调用
2021-08-04 使用C#调用C++类库
2021-08-04 C# IntPtr类型
2021-08-04 C# 调用C++ dll string类型返回
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示