信捷 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.

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

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

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

相关推荐
拼好饭和她皆失10 分钟前
C#学习入门
开发语言·学习·c#
分布式存储与RustFS11 分钟前
MinIO 不再“开放”,RustFS 能否成为更优选择?
开发语言·安全·安全架构·企业存储·rustfs
Sunhen_Qiletian13 分钟前
《Python开发之语言基础》第一集:python的语法元素
开发语言·python
從南走到北28 分钟前
JAVA同城信息付费系统家政服务房屋租赁房屋买卖房屋装修信息发布平台小程序APP公众号源码
java·开发语言·小程序
月夜的风吹雨29 分钟前
【C++红黑树】:自平衡二叉搜索树的精妙实现
开发语言·c++·红黑树
TechMasterPlus39 分钟前
java:单例模式
java·开发语言·单例模式
Star在努力40 分钟前
C语言复习八(2025.11.18)
c语言·算法·排序算法
赖small强1 小时前
【Linux C/C++开发】第26章:系统级综合项目理论
linux·c语言·c++
栗子~~1 小时前
java-根据word模板灵活生成word文档-demo
java·开发语言·word
仟濹2 小时前
【C/C++】经典高精度算法 5道题 加减乘除「复习」
c语言·c++·算法