• 大小: 7KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: modbus  A6  

资源简介

通过modbus控制A6伺服,A6伺服的modbus手册里面有一处错误,该案例已经更改。

资源截图

代码片段和文件信息

#include “led.h“
#include “delay.h“
#include “sys.h“
#include “lcd.h“
#include “encode.h“



extern uint8_t USART1_RX_BUF[64];                                                          
extern uint8_t USART1_RX_CNT;                                                              
//extern uint8_t flagframe = 0; 

uint8_t USART_RX_STA = 0;
uint8_t USART_RX_BUF[64];

uint16_t handHeldCtrCnt = 0;

//bit0:sendDataFlag 0x00 bit1~bit4:gage1 displacement data bit5~bit8: gage2 strain data bit9 bit10: adc data(pressure data)bit11:0x0Abit12:0x0D
uint8_t HHdata[13];
uint16_t count;
uint16_t GAGECnt = 0;
uint16_t GAGECnt_meta = 0;


uint8_t SRV_ON[8] = {0x01 0x05 0x00 0x60 0xFF 0x00 0x8C 0x24};
uint8_t SRV_OFF[8] = {0x01 0x05 0x00 0x60 0x00 0x00 0xCD 0xD4};
uint8_t Block_velocity0[8] = {0x01 0x06 0x46 0x00 0x04 0x00 0x9E 0x42};
uint8_t Block_accelaration0[8] = {0x01 0x06 0x46 0x10 0x01 0x00 0x9C 0xD7 };
uint8_t Block_decelaration0[8] = {0x01 0x06 0x46 0x20 0x01 0x00 0x9C 0xD8 };
uint8_t Block0_CMD[13] = {0x01 0x10 0x48 0x00 0x00 0x02 0x04 0x00 0x00 0x03 0x00 0xA5 0xE8};
uint8_t Block0_data[13] = {0x01 0x10 0x48 0x02 0x00 0x02 0x04 0x00 0x00 0x00 0x00 0x24 0x75};
uint8_t S_STOP_ON[8] = {0x01 0x05 0x01 0x24 0xFF 0x00 0xCD 0xCD};
uint8_t S_STOP_OFF[8] = {0x01 0x05 0x01 0x24 0x00 0x00 0x8C 0x3D};
uint8_t Block_NO[8] = {0x01 0x06 0x44 0x14 0x00 0x00 0xDD 0x3E };
uint8_t Block_Start[8] = {0x01 0x05 0x01 0x20 0xFF 0x00 0x8C 0x0C};
uint8_t Block_OFF[8] = {0x01 0x05 0x01 0x20 0x00 0x00 0xCD 0xFC};

uint8_t Block1_cmd_data[17] = {0x01 0x10 0x48 0x08 0x00 0x04 0x08 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0xB6 0x1E};
uint8_t Block0_cmd_data[17] = {0x01 0x10 0x48 0x00 0x00 0x04 0x08 0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x57 0xC1};
uint8_t Block0_cmd_data_R[17] = {0x01 0x10 0x48 0x00 0x00 0x04 0x08 0x04 0x00 0x03 0x00 0x00 0x00 0x00 0x00 0x56 0x32};

 int main(void)
 {

 uint16_t adcx;
 uint8_t cmd_buf[4] = {0x030x000x030x00};
 uint8_t cmd_data[4] = {0x000x000x000x00};
 uint8_t cmd_count_cmd[4] = {0x030x000x070x00};
 uint8_t cmd_count_data[4] = {0x270x100x000x00};
 uint8_t condition_cmd[4] = {0x000x330x0A0x60};
 uint8_t condition_data[4] = {0x270x100x000x00};
 uint8_t decelaration_cmd[4] = {0x000x000x050x00};
 uint8_t decelaration_data[4] = {0x000x000x000x00};

 delay_init();       //延时函数初始化   
 USART3_Initialise(115200);
 USART1_Initialise(9600);
 RS485_switchinit();
 Adc_Init();
 TIM_Init();//定时器编码器接口初始化
 
//  UART_PutStrRS485(SRV_ON8);
//  UART_PutStrRS485(Block_NO8);
 MODH_Send06H(SLAVE_ADDRREG_Block_NO 0);
 delay_ms(10);
 //UART_PutStrRS485(Block_velocity08);
 MODH_Send06H(SLAVE_ADDRREG_Block_velocity0 0x0400);
 delay_ms(10);
 //UART_PutStrRS485(Block_accelaration08);
 MODH_Send06H(SLAVE_ADDRREG_

评论

共有 条评论