当前位置: 首页 > article >正文

信捷 PLC C语言 简易绝对运动函数BMC_A_DRVA_BODY在POU FC中的使用

在以前的文章中有描述传统梯形图的写运动控制程序,本文用C语言写简易绝对运动函数的使用。

 1.在用户数据类型表中建立类型

2在全局变量表中建立变量

3.建立pou子程序

void POU_test_ethercat_motor_c_language()
{
    #define SysRegAddr_HD_D_HM_M
     #include "D:\XINJE\SuperAxisArray.h"//实际的地  
    DRVA_PAR_array[0].Axis=Axis[0];
    DRVA_PAR_array[0].Execute = motor_cond_array[0].internal_cond;
    DRVA_PAR_array[0].AccTime = 0.05;
    //DRVA_PAR_array[0].Pos = 1;
    DRVA_PAR_array[0].Vel = 1; 
    BMC_A_DRVA_BODY ( &DRVA_PAR_array[0] );          
    //if(BMC_Axis000.Status.StandStill )//M[20008] 
    if(Axis[0]->Status.StandStill )//马达静止状态
    {
        motor_cond_array[0].internal_cond = false;
    }
}

4.调用子程序

5.下载到PLC中调试

(1)在监视窗口将external_cond置true;

(2)修改Pos的值

  (3)  将internal_cond置true

  (4) 如果需要运动到另一个位置,到(2)步,然后(3)步

也就是说通过BMC_A_DRVA_BODY函数来执行简易绝对运动需满足两个条件:外部条件和内部条件,外部条件可以一直为true。设置好简易绝对运动的结构体参数后,让内部条件为true.

运动位置到达后,程序会自动复位内部条件。

另外说明:一个时刻对一个马达只能有一个地方调用(简易)运动指令,指令的形式包括梯形图也,功能块函数。

所以要确保:在不同地方的调用运动指令的条件的互斥关系。


http://www.kler.cn/a/374351.html

相关文章:

  • C++初阶教程——类与对象(中篇)
  • 2024年NSSCTF秋季招新赛-WEB
  • 算法笔记:Day-06(矩阵的顺时针遍历,特定顺序遍历,二维数组的变换)
  • 身份证人像照片验真 API 对接说明
  • Unity发布微信小程序-实战问题汇总
  • 数智驱动,纷享销客助力万东医疗实现精细化管理
  • ZYNQ AXI_Timer 中断
  • 从0学习React(9)
  • 100种算法【Python版】第32篇——Lucas-Lehmer测试
  • 【gRPC】什么是RPC——介绍一下RPC
  • HBM MM CDM HMM ESD TVS 浪涌
  • 【代码随想录Day54】图论Part06
  • 鸿蒙OS:中国智造的基石
  • w012基于springboot的社区团购系统设计
  • hadoop_yarn-site.xml
  • Chrome和夸克谁更护眼
  • OpenCV视觉分析之目标跟踪(2)卡尔曼滤波器KalmanFilter的使用
  • 【React】createContext 和 useContext
  • IDEA:ctrl+/ 快捷键生成的注释,设置“//”开始位置
  • 【机器学习】二分类神经网络