📄 ucosmovementcontrol.c.bak
字号:
TL16C554RS485Tx_BUF[14] = TO_ASCII(FRENIC_RS485TXCheckSUM_H);
TL16C554RS485Tx_BUF[15] = TO_ASCII(FRENIC_RS485TXCheckSUM_L);
RS485_SendStart();
RS485_CanSend = FALSE;
RS485_CanRevv = FALSE;
for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
{
SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);
}
}
}
else
{
FRENIC_RS485_Tx = (INT8U *)OSMboxPend (FRENIC_RS485TxMbox, 0, &ErrFRENIC_RS485TX);
switch((INT8U)FRENIC_RS485_Tx)
{
case 0:///////
{
RS485_SendStart();
RS485_CanSend = 0;
RS485_CanRevv = 0;
for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
{
SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);
}
ErrRS485Number++;
if(ErrRS485Number == 3)
{
RS485_SendNew = TRUE;
////////////此处需要返回错误信息
}
break;
}
case 1:///////
{
RS485_SendStart();
RS485_CanSend = 0;
RS485_CanRevv = 0;
for(TL16C554TX_i=0;TL16C554TX_i<16;TL16C554TX_i++)
{
SendChar_UART_B(TL16C554RS485Tx_BUF[TL16C554TX_i]);
}
break;
}
case 2:
{
RS485_SendNew = TRUE;
break;
}
default:
break;
}
}
}
}
//----变频器发送处理任务
void FRENIC_RS485TXProcess(void *nouse) reentrant
{
INT8U ErrFRENIC_RS485TP;
INT8U *MsgFRENIC_RS485TP;
INT8U *MemFRENIC_RS485TP;
INT8U FRENICRun_SY;
nouse = nouse;
while(1)
{
MsgFRENIC_RS485TP = (INT8U *)OSQPend(TL16C554TestMsg,100, &ErrFRENIC_RS485TP);///////接收发送命令信号量,1S超时
if(ErrFRENIC_RS485TP == OS_TIMEOUT)
{
if(CHECK_STATUS(TTMovement_SY,TT_P_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TTMovement_SY,TT_P_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_speed[TT_P_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TTMovement_SY,TT_N_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_speed[TT_N_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TTMovement_SY,TT_N_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_speed[TT_N_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TLMovement_SY,TL_Head_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TLMovement_SY,TL_Head_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TLMovement_SY,TL_Foot_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(TLMovement_SY,TL_Foot_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SCMovement_SY,SC_Head_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SCMovement_SY,SC_Head_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SCMovement_SY,SC_Foot_L))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SCMovement_SY,SC_Foot_H))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SIDMovement_SY,SID_Up))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Up][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
if(CHECK_STATUS(SIDMovement_SY,SID_Down))
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Down][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
}
}
else
{
MemFRENIC_RS485TP = (INT8U *)OSMemGet(CommunicateBUF,&ErrFRENIC_RS485TP);
FRENICRun_SY = (INT8U)MsgFRENIC_RS485TP;
switch(FRENICRun_SY&0xF0)
{
case TT_Address:
{
TTMovement_SY = 0;
switch(FRENICRun_SY&0x0F)
{
case TT_P_L:
{
SET_STATUS(TTMovement_SY,TT_P_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TT_P_H:
{
SET_STATUS(TTMovement_SY,TT_P_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_P_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TT_N_L:
{
SET_STATUS(TTMovement_SY,TT_N_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_N_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TT_N_H:
{
SET_STATUS(TTMovement_SY,TT_N_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_N_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TT_Stop:
{
SET_STATUS(TTMovement_SY,TT_Stop);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TT_Speed[TT_Stop][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
default:
break;
}
break;
}
case TL_Address:
{
TLMovement_SY = 0;
switch(FRENICRun_SY&0x0F)
{
case TL_Head_L:
{
SET_STATUS(TLMovement_SY,TL_Head_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TL_Head_H:
{
SET_STATUS(TLMovement_SY,TL_Head_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Head_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TL_Foot_L:
{
SET_STATUS(TLMovement_SY,TL_Foot_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TL_Foot_H:
{
SET_STATUS(TLMovement_SY,TL_Foot_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Foot_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case TL_Stop:
{
SET_STATUS(TLMovement_SY,TL_Stop);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = TL_Speed[TL_Stop][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
default:
break;
}
break;
}
case SC_Address:
{
SCMovement_SY = 0;
switch(FRENICRun_SY&0x0F)
{
case SC_Head_L:
{
SET_STATUS(SCMovement_SY,SC_Head_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Head_H:
{
SET_STATUS(SCMovement_SY,SC_Head_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Head_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Foot_L:
{
SET_STATUS(SCMovement_SY,SC_Foot_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Foot_H:
{
SET_STATUS(SCMovement_SY,SC_Foot_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Stop:
{
SET_STATUS(SCMovement_SY,SC_Stop);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Stop][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
default:
break;
}
break;
}
case SID_Address:
{
SIDMovement_SY = 0;
switch(FRENICRun_SY&0x0F)
{
case SID_Up:
{
SET_STATUS(SIDMovement_SY,SID_Up);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Up][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SID_Down:
{
SET_STATUS(SIDMovement_SY,SID_Down);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SID_Speed[SID_Down][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Foot_L:
{
SET_STATUS(SCMovement_SY,SC_Foot_L);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_L][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
case SC_Foot_H:
{
SET_STATUS(SCMovement_SY,SC_Foot_H);
for(i=0;i<=10;i++)
{
*(MemFRENIC_RS485TP + i) = SC_Speed[SC_Foot_H][i];
}
OSQPost(FRENIC_RS485TXMsg,MemFRENIC_RS485TP);
break;
}
default:
break;
}
break;
}
}
}
}
}
void TL16C554TestTask(void *nouse) reentrant
{
nouse = nouse;
while(1)
{
OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_Head);
OSQPost(TL16C554TestMsg,(void *)SC_LowSpeed_Head);
OSQPost(TL16C554TestMsg,(void *)TT_LowSpeed_N);
OSQPost(TL16C554TestMsg,(void *)SID_Movement_Up);
OSTimeDly(OS_TICKS_PER_SEC * 8);
OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)SC_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)TT_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)SID_Movement_Stop);
OSTimeDly(OS_TICKS_PER_SEC * 3);
OSQPost(TL16C554TestMsg,(void *)TL_LowSpeed_Foot);
OSQPost(TL16C554TestMsg,(void *)SC_LowSpeed_Foot);
OSQPost(TL16C554TestMsg,(void *)TT_LowSpeed_P);
OSQPost(TL16C554TestMsg,(void *)SID_Movement_Down);
OSTimeDly(OS_TICKS_PER_SEC * 8);
OSQPost(TL16C554TestMsg,(void *)TL_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)SC_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)TT_Movement_Stop);
OSQPost(TL16C554TestMsg,(void *)SID_Movement_Stop);
OSTimeDly(OS_TICKS_PER_SEC * 3);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -