Обновление
This commit is contained in:
parent
1a651de2bb
commit
a692086561
11
Model_Task.c
11
Model_Task.c
|
|
@ -16,10 +16,17 @@ void ModelTask_Init(
|
||||||
env->thread.id = 0;
|
env->thread.id = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool setActuatorBusy() {
|
static bool setActuatorBusy(tModelTask *env) {
|
||||||
|
|
||||||
for (uint8_t i = 0; i < 9; ++i) {
|
for (uint8_t i = 0; i < 9; ++i) {
|
||||||
if (rtY.Out1.COM[i] != 0) {
|
if (rtY.Out1.COM[i] != 0) {
|
||||||
|
|
||||||
|
env->triggerCommand = true;
|
||||||
|
|
||||||
|
for (uint8_t j = 0; j < 9; ++j) {
|
||||||
|
env->numCommand[j] = rtY.Out1.COM[j];
|
||||||
|
}
|
||||||
|
|
||||||
rtU.in_Busy_Ch0 = 1;
|
rtU.in_Busy_Ch0 = 1;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -32,7 +39,7 @@ static _Noreturn void ModelTask_Thread(tModelTask *env) {
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (osMutexAcquire(env->access, 1000) == osOK) {
|
if (osMutexAcquire(env->access, 1000) == osOK) {
|
||||||
Model_actuator_step();
|
Model_actuator_step();
|
||||||
env->isActuatorOverrideBusy = setActuatorBusy();
|
setActuatorBusy(env);
|
||||||
osMutexRelease(env->access);
|
osMutexRelease(env->access);
|
||||||
}
|
}
|
||||||
SystemDelayMs(100);
|
SystemDelayMs(100);
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,8 @@ typedef struct {
|
||||||
|
|
||||||
osMutexId_t access;
|
osMutexId_t access;
|
||||||
|
|
||||||
bool isActuatorOverrideBusy;
|
bool triggerCommand;
|
||||||
|
uint8_t numCommand[9];
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
osThreadId_t id;
|
osThreadId_t id;
|
||||||
|
|
|
||||||
289
Model_actuator.c
289
Model_actuator.c
|
|
@ -3,9 +3,9 @@
|
||||||
*
|
*
|
||||||
* Code generated for Simulink model 'Model_actuator'.
|
* Code generated for Simulink model 'Model_actuator'.
|
||||||
*
|
*
|
||||||
* Model version : 1.541
|
* Model version : 1.543
|
||||||
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
||||||
* C/C++ source code generated on : Fri Dec 19 16:49:11 2025
|
* C/C++ source code generated on : Fri Dec 19 18:00:02 2025
|
||||||
*
|
*
|
||||||
* Target selection: ert.tlc
|
* Target selection: ert.tlc
|
||||||
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
||||||
|
|
@ -54,64 +54,17 @@ void IfActionSubsystem3(int8_t rtu_stepIn, int8_t *rty_step, uint8_t
|
||||||
{
|
{
|
||||||
int32_t i;
|
int32_t i;
|
||||||
|
|
||||||
/* DataStoreWrite: '<S37>/Data Store Write3' */
|
/* DataStoreWrite: '<S38>/Data Store Write3' */
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
rtd_com_loc[i] = 0U;
|
rtd_com_loc[i] = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End of DataStoreWrite: '<S37>/Data Store Write3' */
|
/* End of DataStoreWrite: '<S38>/Data Store Write3' */
|
||||||
|
|
||||||
/* SignalConversion generated from: '<S37>/stepIn' */
|
/* SignalConversion generated from: '<S38>/stepIn' */
|
||||||
*rty_step = rtu_stepIn;
|
*rty_step = rtu_stepIn;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Output and update for action system:
|
|
||||||
* '<S9>/If Action Subsystem2'
|
|
||||||
* '<S8>/If Action Subsystem2'
|
|
||||||
*/
|
|
||||||
void IfActionSubsystem2(int8_t rtu_stepIn, int8_t *rty_step, uint8_t
|
|
||||||
rtd_autos_set_loc[9], uint8_t rtd_coils_stop_set_loc[9], uint8_t rtd_com_loc[9],
|
|
||||||
uint8_t rtd_lnoise_set_loc[9], uint8_t rtd_speed_set_loc[9], uint8_t
|
|
||||||
rtd_stall_set_loc[9])
|
|
||||||
{
|
|
||||||
int32_t i;
|
|
||||||
for (i = 0; i < 9; i++) {
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write1' incorporates:
|
|
||||||
* Constant: '<S30>/Constant1'
|
|
||||||
*/
|
|
||||||
rtd_stall_set_loc[i] = 0U;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write3' incorporates:
|
|
||||||
* Constant: '<S30>/Constant2'
|
|
||||||
*/
|
|
||||||
rtd_lnoise_set_loc[i] = 0U;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write2' */
|
|
||||||
rtd_com_loc[i] = 3U;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write4' incorporates:
|
|
||||||
* Constant: '<S30>/Constant4'
|
|
||||||
*/
|
|
||||||
rtd_autos_set_loc[i] = 0U;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write5' incorporates:
|
|
||||||
* Constant: '<S30>/Constant5'
|
|
||||||
*/
|
|
||||||
rtd_speed_set_loc[i] = 0U;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<S30>/Data Store Write6' incorporates:
|
|
||||||
* Constant: '<S30>/Constant6'
|
|
||||||
*/
|
|
||||||
rtd_coils_stop_set_loc[i] = 0U;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Sum: '<S30>/step inc' incorporates:
|
|
||||||
* Constant: '<S30>/Constant'
|
|
||||||
*/
|
|
||||||
*rty_step = (int8_t)(rtu_stepIn + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Model step function */
|
/* Model step function */
|
||||||
void Model_actuator_step(void)
|
void Model_actuator_step(void)
|
||||||
{
|
{
|
||||||
|
|
@ -119,32 +72,6 @@ void Model_actuator_step(void)
|
||||||
uint16_t tmp;
|
uint16_t tmp;
|
||||||
int8_t rtb_Switch;
|
int8_t rtb_Switch;
|
||||||
|
|
||||||
/* BusCreator: '<Root>/Bus Creator' incorporates:
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read1'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read2'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read3'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read4'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read5'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read6'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read7'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read8'
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read9'
|
|
||||||
* DataStoreWrite: '<Root>/Data Store Write'
|
|
||||||
*/
|
|
||||||
for (i = 0; i < 9; i++) {
|
|
||||||
controllerData.POS[i] = rtDW.pos_loc[i];
|
|
||||||
controllerData.BUS_ADR[i] = rtDW.busAdr_loc[i];
|
|
||||||
controllerData.MODE[i] = rtDW.mode_loc[i];
|
|
||||||
controllerData.COM[i] = rtDW.com_loc[i];
|
|
||||||
controllerData.Stall_SET[i] = rtDW.stall_set_loc[i];
|
|
||||||
controllerData.Lnoise_SET[i] = rtDW.lnoise_set_loc[i];
|
|
||||||
controllerData.Autos_SET[i] = rtDW.autos_set_loc[i];
|
|
||||||
controllerData.Speed_SET[i] = rtDW.speed_set_loc[i];
|
|
||||||
controllerData.Coils_Stop_SET[i] = rtDW.coils_stop_set_loc[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* End of BusCreator: '<Root>/Bus Creator' */
|
|
||||||
|
|
||||||
/* Switch: '<Root>/Switch' incorporates:
|
/* Switch: '<Root>/Switch' incorporates:
|
||||||
* Constant: '<Root>/Constant1'
|
* Constant: '<Root>/Constant1'
|
||||||
* DataStoreRead: '<Root>/Data Store Read'
|
* DataStoreRead: '<Root>/Data Store Read'
|
||||||
|
|
@ -170,27 +97,27 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S36>/Action Port'
|
* ActionPort: '<S37>/Action Port'
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
/* DataStoreWrite: '<S36>/Data Store Write2' */
|
/* DataStoreWrite: '<S37>/Data Store Write2' */
|
||||||
rtDW.mode_loc[i] = 2U;
|
rtDW.mode_loc[i] = 2U;
|
||||||
|
|
||||||
/* DataStoreWrite: '<S36>/Data Store Write3' */
|
/* DataStoreWrite: '<S37>/Data Store Write3' */
|
||||||
rtDW.com_loc[i] = 1U;
|
rtDW.com_loc[i] = 1U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S36>/Constant'
|
* Constant: '<S37>/Constant'
|
||||||
* Merge: '<S12>/Merge'
|
* Merge: '<S12>/Merge'
|
||||||
* Sum: '<S36>/step inc'
|
* Sum: '<S37>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S12>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S12>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S12>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S37>/Action Port'
|
* ActionPort: '<S38>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -219,38 +146,38 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem' incorporates:
|
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem' incorporates:
|
||||||
* ActionPort: '<S24>/Action Port'
|
* ActionPort: '<S25>/Action Port'
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
/* DataStoreWrite: '<S24>/Data Store Write' */
|
/* DataStoreWrite: '<S25>/Data Store Write' */
|
||||||
rtDW.pos_loc[i] = 6000U;
|
rtDW.pos_loc[i] = 6000U;
|
||||||
|
|
||||||
/* DataStoreWrite: '<S24>/Data Store Write1' */
|
/* DataStoreWrite: '<S25>/Data Store Write1' */
|
||||||
rtDW.com_loc[i] = 2U;
|
rtDW.com_loc[i] = 2U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S24>/Constant'
|
* Constant: '<S25>/Constant'
|
||||||
* Merge: '<S7>/Merge'
|
* Merge: '<S7>/Merge'
|
||||||
* Sum: '<S24>/step inc'
|
* Sum: '<S25>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem' */
|
/* End of Outputs for SubSystem: '<S7>/If Action Subsystem' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S7>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S25>/Action Port'
|
* ActionPort: '<S26>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* DataStoreWrite: '<S25>/Data Store Write3' */
|
/* DataStoreWrite: '<S26>/Data Store Write3' */
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
rtDW.com_loc[i] = 0U;
|
rtDW.com_loc[i] = 0U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End of DataStoreWrite: '<S25>/Data Store Write3' */
|
/* End of DataStoreWrite: '<S26>/Data Store Write3' */
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Merge: '<S7>/Merge'
|
* Merge: '<S7>/Merge'
|
||||||
* SignalConversion generated from: '<S25>/stepIn1'
|
* SignalConversion generated from: '<S26>/stepIn1'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = rtb_Switch;
|
rtB.Merge = rtb_Switch;
|
||||||
|
|
||||||
|
|
@ -278,27 +205,27 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S33>/Action Port'
|
* ActionPort: '<S34>/Action Port'
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
/* DataStoreWrite: '<S33>/Data Store Write' */
|
/* DataStoreWrite: '<S34>/Data Store Write' */
|
||||||
rtDW.mode_loc[i] = 0U;
|
rtDW.mode_loc[i] = 0U;
|
||||||
|
|
||||||
/* DataStoreWrite: '<S33>/Data Store Write2' */
|
/* DataStoreWrite: '<S34>/Data Store Write2' */
|
||||||
rtDW.com_loc[i] = 1U;
|
rtDW.com_loc[i] = 1U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S33>/Constant'
|
* Constant: '<S34>/Constant'
|
||||||
* Merge: '<S10>/Merge'
|
* Merge: '<S10>/Merge'
|
||||||
* Sum: '<S33>/step inc'
|
* Sum: '<S34>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S10>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S10>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S10>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S34>/Action Port'
|
* ActionPort: '<S35>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -327,18 +254,50 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S30>/Action Port'
|
* ActionPort: '<S31>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
for (i = 0; i < 9; i++) {
|
||||||
IfActionSubsystem2(rtb_Switch, &rtB.Merge, rtDW.autos_set_loc,
|
/* DataStoreWrite: '<S31>/Data Store Write1' */
|
||||||
rtDW.coils_stop_set_loc, rtDW.com_loc,
|
rtDW.stall_set_loc[i] = 1U;
|
||||||
rtDW.lnoise_set_loc, rtDW.speed_set_loc,
|
|
||||||
rtDW.stall_set_loc);
|
/* DataStoreWrite: '<S31>/Data Store Write3' incorporates:
|
||||||
|
* Constant: '<S31>/Constant2'
|
||||||
|
*/
|
||||||
|
rtDW.lnoise_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S31>/Data Store Write2' */
|
||||||
|
rtDW.com_loc[i] = 3U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S31>/Data Store Write4' incorporates:
|
||||||
|
* Constant: '<S31>/Constant4'
|
||||||
|
*/
|
||||||
|
rtDW.autos_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S31>/Data Store Write5' incorporates:
|
||||||
|
* Constant: '<S31>/Constant5'
|
||||||
|
*/
|
||||||
|
rtDW.speed_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S31>/Data Store Write6' incorporates:
|
||||||
|
* Constant: '<S31>/Constant6'
|
||||||
|
*/
|
||||||
|
rtDW.coils_stop_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S31>/Data Store Write' */
|
||||||
|
rtDW.pos_loc[i] = 0U;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
|
* Constant: '<S31>/Constant'
|
||||||
|
* Merge: '<S9>/Merge'
|
||||||
|
* Sum: '<S31>/step inc'
|
||||||
|
*/
|
||||||
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S9>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S9>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S9>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S31>/Action Port'
|
* ActionPort: '<S32>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -367,9 +326,9 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S2>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S2>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S17>/Action Port'
|
* ActionPort: '<S18>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* DataStoreWrite: '<S17>/Data Store Write1' incorporates:
|
/* DataStoreWrite: '<S18>/Data Store Write1' incorporates:
|
||||||
* DataStoreWrite: '<Root>/Data Store Write1'
|
* DataStoreWrite: '<Root>/Data Store Write1'
|
||||||
* Inport: '<Root>/in_CPOS_ALL_Ch0'
|
* Inport: '<Root>/in_CPOS_ALL_Ch0'
|
||||||
*/
|
*/
|
||||||
|
|
@ -377,19 +336,19 @@ void Model_actuator_step(void)
|
||||||
rtDW.Min_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i];
|
rtDW.Min_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End of DataStoreWrite: '<S17>/Data Store Write1' */
|
/* End of DataStoreWrite: '<S18>/Data Store Write1' */
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S17>/Constant'
|
* Constant: '<S18>/Constant'
|
||||||
* Merge: '<S2>/Merge'
|
* Merge: '<S2>/Merge'
|
||||||
* Sum: '<S17>/step inc'
|
* Sum: '<S18>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S2>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S2>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S2>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S2>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S18>/Action Port'
|
* ActionPort: '<S19>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -418,27 +377,27 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S6>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S6>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S21>/Action Port'
|
* ActionPort: '<S22>/Action Port'
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 9; i++) {
|
for (i = 0; i < 9; i++) {
|
||||||
/* DataStoreWrite: '<S21>/Data Store Write' */
|
/* DataStoreWrite: '<S22>/Data Store Write' */
|
||||||
rtDW.pos_loc[i] = 0U;
|
rtDW.pos_loc[i] = 0U;
|
||||||
|
|
||||||
/* DataStoreWrite: '<S21>/Data Store Write1' */
|
/* DataStoreWrite: '<S22>/Data Store Write1' */
|
||||||
rtDW.com_loc[i] = 2U;
|
rtDW.com_loc[i] = 2U;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S21>/Constant'
|
* Constant: '<S22>/Constant'
|
||||||
* Merge: '<S6>/Merge'
|
* Merge: '<S6>/Merge'
|
||||||
* Sum: '<S21>/step inc'
|
* Sum: '<S22>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S6>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S6>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S6>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S6>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S22>/Action Port'
|
* ActionPort: '<S23>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -467,18 +426,50 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S27>/Action Port'
|
* ActionPort: '<S28>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
for (i = 0; i < 9; i++) {
|
||||||
IfActionSubsystem2(rtb_Switch, &rtB.Merge, rtDW.autos_set_loc,
|
/* DataStoreWrite: '<S28>/Data Store Write1' */
|
||||||
rtDW.coils_stop_set_loc, rtDW.com_loc,
|
rtDW.stall_set_loc[i] = 1U;
|
||||||
rtDW.lnoise_set_loc, rtDW.speed_set_loc,
|
|
||||||
rtDW.stall_set_loc);
|
/* DataStoreWrite: '<S28>/Data Store Write3' incorporates:
|
||||||
|
* Constant: '<S28>/Constant2'
|
||||||
|
*/
|
||||||
|
rtDW.lnoise_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S28>/Data Store Write2' */
|
||||||
|
rtDW.com_loc[i] = 3U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S28>/Data Store Write4' incorporates:
|
||||||
|
* Constant: '<S28>/Constant4'
|
||||||
|
*/
|
||||||
|
rtDW.autos_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S28>/Data Store Write5' incorporates:
|
||||||
|
* Constant: '<S28>/Constant5'
|
||||||
|
*/
|
||||||
|
rtDW.speed_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S28>/Data Store Write6' incorporates:
|
||||||
|
* Constant: '<S28>/Constant6'
|
||||||
|
*/
|
||||||
|
rtDW.coils_stop_set_loc[i] = 0U;
|
||||||
|
|
||||||
|
/* DataStoreWrite: '<S28>/Data Store Write' */
|
||||||
|
rtDW.pos_loc[i] = 6000U;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
|
* Constant: '<S28>/Constant'
|
||||||
|
* Merge: '<S8>/Merge'
|
||||||
|
* Sum: '<S28>/step inc'
|
||||||
|
*/
|
||||||
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S8>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S8>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S28>/Action Port'
|
* ActionPort: '<S29>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -507,9 +498,9 @@ void Model_actuator_step(void)
|
||||||
*/
|
*/
|
||||||
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
if ((rtU.in_Busy_Ch0 == 0) && (rtU.in_Error_Connect_Ch0 == 0)) {
|
||||||
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem2' incorporates:
|
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem2' incorporates:
|
||||||
* ActionPort: '<S14>/Action Port'
|
* ActionPort: '<S15>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* DataStoreWrite: '<S14>/Data Store Write1' incorporates:
|
/* DataStoreWrite: '<S15>/Data Store Write1' incorporates:
|
||||||
* DataStoreWrite: '<Root>/Data Store Write1'
|
* DataStoreWrite: '<Root>/Data Store Write1'
|
||||||
* Inport: '<Root>/in_CPOS_ALL_Ch0'
|
* Inport: '<Root>/in_CPOS_ALL_Ch0'
|
||||||
*/
|
*/
|
||||||
|
|
@ -517,19 +508,19 @@ void Model_actuator_step(void)
|
||||||
rtDW.Max_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i];
|
rtDW.Max_position_Ch0[i] = rtU.in_CPOS_ALL_Ch0[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End of DataStoreWrite: '<S14>/Data Store Write1' */
|
/* End of DataStoreWrite: '<S15>/Data Store Write1' */
|
||||||
|
|
||||||
/* Merge: '<Root>/Merge' incorporates:
|
/* Merge: '<Root>/Merge' incorporates:
|
||||||
* Constant: '<S14>/Constant'
|
* Constant: '<S15>/Constant'
|
||||||
* Merge: '<S1>/Merge'
|
* Merge: '<S1>/Merge'
|
||||||
* Sum: '<S14>/step inc'
|
* Sum: '<S15>/step inc'
|
||||||
*/
|
*/
|
||||||
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
rtB.Merge = (int8_t)(rtb_Switch + 1);
|
||||||
|
|
||||||
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem2' */
|
/* End of Outputs for SubSystem: '<S1>/If Action Subsystem2' */
|
||||||
} else {
|
} else {
|
||||||
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem3' incorporates:
|
/* Outputs for IfAction SubSystem: '<S1>/If Action Subsystem3' incorporates:
|
||||||
* ActionPort: '<S15>/Action Port'
|
* ActionPort: '<S16>/Action Port'
|
||||||
*/
|
*/
|
||||||
/* Merge: '<Root>/Merge' */
|
/* Merge: '<Root>/Merge' */
|
||||||
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
IfActionSubsystem3(rtb_Switch, &rtB.Merge, rtDW.com_loc);
|
||||||
|
|
@ -634,16 +625,42 @@ void Model_actuator_step(void)
|
||||||
|
|
||||||
/* End of SwitchCase: '<Root>/Switch Case' */
|
/* End of SwitchCase: '<Root>/Switch Case' */
|
||||||
|
|
||||||
/* Outport: '<Root>/Out1' incorporates:
|
|
||||||
* DataStoreRead: '<Root>/Data Store Read10'
|
|
||||||
*/
|
|
||||||
rtY.Out1 = controllerData;
|
|
||||||
|
|
||||||
/* DataStoreWrite: '<Root>/Start write stepSig' incorporates:
|
/* DataStoreWrite: '<Root>/Start write stepSig' incorporates:
|
||||||
* Constant: '<Root>/Constant1'
|
* Constant: '<Root>/Constant1'
|
||||||
*/
|
*/
|
||||||
rtDW.stepSig = 1;
|
rtDW.stepSig = 1;
|
||||||
|
|
||||||
|
/* BusCreator: '<S13>/Bus Creator' incorporates:
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read1'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read2'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read3'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read4'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read5'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read6'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read7'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read8'
|
||||||
|
* DataStoreRead: '<S13>/Data Store Read9'
|
||||||
|
* DataStoreWrite: '<S13>/Data Store Write'
|
||||||
|
*/
|
||||||
|
for (i = 0; i < 9; i++) {
|
||||||
|
controllerData.POS[i] = rtDW.pos_loc[i];
|
||||||
|
controllerData.BUS_ADR[i] = rtDW.busAdr_loc[i];
|
||||||
|
controllerData.MODE[i] = rtDW.mode_loc[i];
|
||||||
|
controllerData.COM[i] = rtDW.com_loc[i];
|
||||||
|
controllerData.Stall_SET[i] = rtDW.stall_set_loc[i];
|
||||||
|
controllerData.Lnoise_SET[i] = rtDW.lnoise_set_loc[i];
|
||||||
|
controllerData.Autos_SET[i] = rtDW.autos_set_loc[i];
|
||||||
|
controllerData.Speed_SET[i] = rtDW.speed_set_loc[i];
|
||||||
|
controllerData.Coils_Stop_SET[i] = rtDW.coils_stop_set_loc[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* End of BusCreator: '<S13>/Bus Creator' */
|
||||||
|
|
||||||
|
/* Outport: '<Root>/Out1' incorporates:
|
||||||
|
* DataStoreRead: '<Root>/Data Store Read10'
|
||||||
|
*/
|
||||||
|
rtY.Out1 = controllerData;
|
||||||
|
|
||||||
/* MATLAB Function: '<Root>/Finish case' incorporates:
|
/* MATLAB Function: '<Root>/Finish case' incorporates:
|
||||||
* UnitDelay: '<Root>/Unit Delay'
|
* UnitDelay: '<Root>/Unit Delay'
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
*
|
*
|
||||||
* Code generated for Simulink model 'Model_actuator'.
|
* Code generated for Simulink model 'Model_actuator'.
|
||||||
*
|
*
|
||||||
* Model version : 1.541
|
* Model version : 1.542
|
||||||
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
||||||
* C/C++ source code generated on : Fri Dec 19 16:49:11 2025
|
* C/C++ source code generated on : Fri Dec 19 17:44:01 2025
|
||||||
*
|
*
|
||||||
* Target selection: ert.tlc
|
* Target selection: ert.tlc
|
||||||
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
||||||
|
|
@ -154,32 +154,33 @@ extern RT_MODEL *const rtM;
|
||||||
* '<S10>' : 'Model_actuator/Normal Mode'
|
* '<S10>' : 'Model_actuator/Normal Mode'
|
||||||
* '<S11>' : 'Model_actuator/Start case'
|
* '<S11>' : 'Model_actuator/Start case'
|
||||||
* '<S12>' : 'Model_actuator/Stop Mode'
|
* '<S12>' : 'Model_actuator/Stop Mode'
|
||||||
* '<S13>' : 'Model_actuator/Check Stall Max/Check Stall Max'
|
* '<S13>' : 'Model_actuator/Subsystem'
|
||||||
* '<S14>' : 'Model_actuator/Check Stall Max/If Action Subsystem2'
|
* '<S14>' : 'Model_actuator/Check Stall Max/Check Stall Max'
|
||||||
* '<S15>' : 'Model_actuator/Check Stall Max/If Action Subsystem3'
|
* '<S15>' : 'Model_actuator/Check Stall Max/If Action Subsystem2'
|
||||||
* '<S16>' : 'Model_actuator/Check Stall Min/Check Stall Min'
|
* '<S16>' : 'Model_actuator/Check Stall Max/If Action Subsystem3'
|
||||||
* '<S17>' : 'Model_actuator/Check Stall Min/If Action Subsystem2'
|
* '<S17>' : 'Model_actuator/Check Stall Min/Check Stall Min'
|
||||||
* '<S18>' : 'Model_actuator/Check Stall Min/If Action Subsystem3'
|
* '<S18>' : 'Model_actuator/Check Stall Min/If Action Subsystem2'
|
||||||
* '<S19>' : 'Model_actuator/Homing/MAX POSITION'
|
* '<S19>' : 'Model_actuator/Check Stall Min/If Action Subsystem3'
|
||||||
* '<S20>' : 'Model_actuator/Homing/MIN POSITION'
|
* '<S20>' : 'Model_actuator/Homing/MAX POSITION'
|
||||||
* '<S21>' : 'Model_actuator/Initial CPOS Max/If Action Subsystem2'
|
* '<S21>' : 'Model_actuator/Homing/MIN POSITION'
|
||||||
* '<S22>' : 'Model_actuator/Initial CPOS Max/If Action Subsystem3'
|
* '<S22>' : 'Model_actuator/Initial CPOS Max/If Action Subsystem2'
|
||||||
* '<S23>' : 'Model_actuator/Initial CPOS Max/Initial CPOS Max'
|
* '<S23>' : 'Model_actuator/Initial CPOS Max/If Action Subsystem3'
|
||||||
* '<S24>' : 'Model_actuator/Initial CPOS Min/If Action Subsystem'
|
* '<S24>' : 'Model_actuator/Initial CPOS Max/Initial CPOS Max'
|
||||||
* '<S25>' : 'Model_actuator/Initial CPOS Min/If Action Subsystem3'
|
* '<S25>' : 'Model_actuator/Initial CPOS Min/If Action Subsystem'
|
||||||
* '<S26>' : 'Model_actuator/Initial CPOS Min/Initial CPOS Min'
|
* '<S26>' : 'Model_actuator/Initial CPOS Min/If Action Subsystem3'
|
||||||
* '<S27>' : 'Model_actuator/Move to position Max/If Action Subsystem2'
|
* '<S27>' : 'Model_actuator/Initial CPOS Min/Initial CPOS Min'
|
||||||
* '<S28>' : 'Model_actuator/Move to position Max/If Action Subsystem3'
|
* '<S28>' : 'Model_actuator/Move to position Max/If Action Subsystem2'
|
||||||
* '<S29>' : 'Model_actuator/Move to position Max/Move to position Max'
|
* '<S29>' : 'Model_actuator/Move to position Max/If Action Subsystem3'
|
||||||
* '<S30>' : 'Model_actuator/Move to position Min/If Action Subsystem2'
|
* '<S30>' : 'Model_actuator/Move to position Max/Move to position Max'
|
||||||
* '<S31>' : 'Model_actuator/Move to position Min/If Action Subsystem3'
|
* '<S31>' : 'Model_actuator/Move to position Min/If Action Subsystem2'
|
||||||
* '<S32>' : 'Model_actuator/Move to position Min/Move to position Min'
|
* '<S32>' : 'Model_actuator/Move to position Min/If Action Subsystem3'
|
||||||
* '<S33>' : 'Model_actuator/Normal Mode/If Action Subsystem2'
|
* '<S33>' : 'Model_actuator/Move to position Min/Move to position Min'
|
||||||
* '<S34>' : 'Model_actuator/Normal Mode/If Action Subsystem3'
|
* '<S34>' : 'Model_actuator/Normal Mode/If Action Subsystem2'
|
||||||
* '<S35>' : 'Model_actuator/Normal Mode/Normal Mode'
|
* '<S35>' : 'Model_actuator/Normal Mode/If Action Subsystem3'
|
||||||
* '<S36>' : 'Model_actuator/Stop Mode/If Action Subsystem2'
|
* '<S36>' : 'Model_actuator/Normal Mode/Normal Mode'
|
||||||
* '<S37>' : 'Model_actuator/Stop Mode/If Action Subsystem3'
|
* '<S37>' : 'Model_actuator/Stop Mode/If Action Subsystem2'
|
||||||
* '<S38>' : 'Model_actuator/Stop Mode/stop mode'
|
* '<S38>' : 'Model_actuator/Stop Mode/If Action Subsystem3'
|
||||||
|
* '<S39>' : 'Model_actuator/Stop Mode/stop mode'
|
||||||
*/
|
*/
|
||||||
#endif /* Model_actuator_h_ */
|
#endif /* Model_actuator_h_ */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
*
|
*
|
||||||
* Code generated for Simulink model 'Model_actuator'.
|
* Code generated for Simulink model 'Model_actuator'.
|
||||||
*
|
*
|
||||||
* Model version : 1.541
|
* Model version : 1.542
|
||||||
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
||||||
* C/C++ source code generated on : Fri Dec 19 16:49:11 2025
|
* C/C++ source code generated on : Fri Dec 19 17:44:01 2025
|
||||||
*
|
*
|
||||||
* Target selection: ert.tlc
|
* Target selection: ert.tlc
|
||||||
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@
|
||||||
*
|
*
|
||||||
* Code generated for Simulink model 'Model_actuator'.
|
* Code generated for Simulink model 'Model_actuator'.
|
||||||
*
|
*
|
||||||
* Model version : 1.541
|
* Model version : 1.542
|
||||||
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
* Simulink Coder version : 24.1 (R2024a) 19-Nov-2023
|
||||||
* C/C++ source code generated on : Fri Dec 19 16:49:11 2025
|
* C/C++ source code generated on : Fri Dec 19 17:44:01 2025
|
||||||
*
|
*
|
||||||
* Target selection: ert.tlc
|
* Target selection: ert.tlc
|
||||||
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
* Embedded hardware selection: ARM Compatible->ARM Cortex-M
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue