无刷모터驱动器Modbus 통신 프로토콜及레지스터설명

무료무료 기술 자료

이 글은 바로 읽을 수 있으며 기초 학습과 검색 유입에 적합합니다.

无刷电机驱动器Modbus 通讯协议及寄存器说明
无刷电机驱动器Modbus 通讯协议及寄存器说明插图

1. 통신 프로토콜

本驱动器使用 MODBUS-RTU(国标 GB/T19582-2008)통신 프로토콜进行通讯, 支持一台마스터控制多个슬레이브(即驱动器),支持最多 255 个슬레이브,支持通讯广播(슬레이브 주소为 0 视为广播帧),마스터可以是单片机、PLC 或 PC 机等。

1.1 通讯매개변수

默认通讯매개변수:

  • > 통신 속도固定为 9600bps。
  • > 데이터 비트为 8 位。
  • > 체크섬为“无+1 정지 비트”。
  • > 슬레이브 주소固定为 1。 用户自定义通讯매개변수:
  • > 통신 속도可설정范围 9600-115200bps。
  • > 데이터 비트固定为 8 位。
  • > 체크섬 방식可설정为: “偶+1 정지 비트”、“奇+1 정지 비트”和“无+2 정지 비트”。
  • > 슬레이브 주소可设置范围 1~255。

当데이터帧통신中断超过 4 个바이트的打包时间判定为帧수신超时。当发生帧超时的时候,之前수신到的데이터将被 视为无效。

1.2 MODBUS-RTU 帧형식

本驱动器支持 MODBUS 的 0x03(读유지 레지스터)、0x06(写单个레지스터)和 0x10(写多个레지스터)기능 코드。

1.2.1 0x03 读유지 레지스터

마스터보내기:

바이트12345678
콘텐츠ADR0x03시작레지스터 高바이트시작레지스터 低바이트레지스터数高바이트레지스터数 低바이트CRC 低바이트CRC  高바이트

第 1 바이트 ADR: 슬레이브 주소码(=001~254)。

第 2 바이트 0x03: 读레지스터 값기능 코드。

第 3、4 바이트: 要读的레지스터开始주소。

第 5、6 바이트: 要读的레지스터 수량。

第 7、8 바이트: 从바이트 1 到 6 的 CRC16 체크섬 。

슬레이브回送:

바이트1234 56 7M-1MM+1M+2
콘텐츠ADR0x03바이트总数레지스터 데이터 1레지스터 데이터 2레지스터데이터 MCRC 低바이트CRC 高 바이트

第 1 바이트 ADR: 슬레이브 주소码(=001~254)。

第 2 바이트 0x03: 返回读기능 코드。

第 3 바이트:从 4 到 M(包括 4 及 M)的바이트总数。

第 4 到 M 바이트:  레지스터데이터。

第 M+1、M+2 바이트: 从바이트 1 到 M 的 CRC16 체크섬。

当슬레이브수신错误时, 슬레이브回送:

바이트12345
콘텐츠ADR0x83异常码CRC 低바이트CRC 高바이트

第 1 바이트 第 2 바이트 第 3 바이트

ADR: 슬레이브 주소码(=001~254)。

0x83: 读레지스터 값出错。

异常码: 见表 1.1

第 4、5 바이트: 从바이트 1 到 3 的 CRC16 체크섬。

1.2.2 0x06 写单个레지스터

마스터보내기:

바이트12345678
콘텐츠ADR0x06레지스터高 바이트주소레지스터低 바이트주소데이터高바이트데이터低바이트CRC 码低바이트CRC 码高바이트

当슬레이브수신正确时, 슬레이브回送:

바이트12345678
콘텐츠ADR0x06레지스터高 바이트주소레지스터低 바이트주소데이터高바이트데이터低바이트CRC 码低바이트CRC 码高바이트

当슬레이브수신错误时, 슬레이브回送:

바이트12345
콘텐츠ADR0x86异常码CRC 低바이트CRC 高바이트

第 1 바이트 第 2 바이트 第 3 바이트

ADR: 슬레이브 주소码(=001~254)。

0x86: 写레지스터 값出错기능 코드。

异常码: 见表 1.1

第 4、5 바이트: 从바이트 1 到 3 的 CRC16 체크섬。

1.2.3 0x10 写多个레지스터 값

마스터보내기:

바이트1234567
콘텐츠ADR0x10시작레지스터 高바이트주소시작레지스터 低바이트주소레지스터数 量高바이트레지스터数 量低바이트데이터字 节总数
바이트8,910,11N,N+1N+2N+3
콘텐츠레지스터데이터 1레지스터데이터 2레지스터데이터 MCRC 码低바이트CRC 码高바이트

当슬레이브수신正确时, 슬레이브回送:

바이트12345678
콘텐츠ADR0x10레지스터高 바이트주소레지스터低 바이트주소레지스터数 量高바이트레지스터数 量低바이트CRC 码低바이트CRC 码高바이트

当슬레이브수신错误时,슬레이브回送:

바이트12345
콘텐츠ADR0x90异常码CRC 低바이트CRC 高바이트

第 1 바이트 第 2 바이트 第 3 바이트

ADR: 0x90:  异常码:

슬레이브 주소码(=001~254)。

写레지스터 값出错。

见表 1.1

第 4、5 바이트: 从바이트 1 到 3 的 CRC16 체크섬。

1.2.4 错误异常码

MODBUS 异常码 :如表 1.1 

表 1. 1 MODBUS 异常码表

异常码含义
0x01非法기능 코드
0x02非法데이터주소
0x03非法데이터值
0x04슬레이브设备故障
0x05请求已被确认,但需要较长时间来处理请求
0x06从设备忙
0x08存储奇偶性差错
0x0A不可用的게이트웨이
0x0B게이트웨이目标设备响应失败

2. 표준레지스터定义

2.1 设备설명信息레지스터

设备설명信息레지스터如表 2.1 示。

表 2. 1 设备설명信息레지스터

레지스터주소설명取值范围支持기능 코드备注
0x0000 (0)设备标识号 0x03每个型号都有对应的设备标识号
0x0001 (1)设备버전 0x03高바이트为主버전号,低바이트为副버전号
0x0002 (2)最大电流 0x03数值乘以0.01为电流值,单位为A
 0x0003~0x0007(3)~(7) 保留  0x03  

2.2 实时状态레지스터

实时状态레지스터如表 2.2 示。

表 2.2 实时状态레지스터

레지스터주소설명取值范围支持기능 코드备注
0x0008 (8)实时电流0~655350x03数值乘以 0.01 为电流值,单位为 A
0x0009 (9)实时速度之高半字 -110000~110000 0x03 实时转速,单位为 RPM
0x000A (10)实时速度之低半字
        0x000B (11)        错误状态         0~13         0x030 无错误1:堵转停机2:相序未학습3:相位异常4:相线过流5:母线过流6:电压过高7:电压过低,8:相位학습异常9:过载异常10:485 통신中断11:CAN 通讯中断12:母线电压过高13:온도过高,14:无感启动失败15:相电流异常
0x000C (12)内部电位器电压0~33000x03单位为 mV
0x000D (13)外部信号电压0~100000x03单位为 mV
0x000E (14)保留   
0x000F (15)保留   
 0x0010 (16) 使能电平 0,1 0x030:低电平1:高电平
 0x0011 (17) 刹车电平 0,1 0x030:低电平1:高电平
 0x0012 (18) 方向电平 0,1 0x030:低电平1:高电平
                        0x0013 (19)   控制모드                 0x07,0x09,0x19,0x01,0x11,0x0a,0x1a,0x02,0x12,0x0b,0x1b,0x03,0x13,0x0c,0x1c,0x04,0x14,0x0d,0x1d,0x05,0x15,0x08,0x18,0x00,0x10,0x030-4 位中从低到高定义:①第 4 位表示无感 0 或有感 1,②第 3 位表示开环 0 或闭环 1,③第 0-2 位表示모드:相序학습(111),通讯控制(000),内部电位器(001),模拟量(010),PWM(011),航模 PWM(100),摇杆(101)④取值意义:0x07:相序학습, 0x09:无感/闭环/内部电位器控制,0x19:有感/闭环/内部电位器控制,0x01:无感/开环/内部电位器控制,0x11:有感/开环/内部电位器控制, 0x0a:无感/闭环/模拟量控制,0x1a:有感/闭环/模拟量控制,0x02:无感/开环/模拟量控制,0x12:有感/开环/模拟量控制, 0x0b:无感/闭环/PWM 控制,0x1b:有感/闭环/PWM 控制,0x03:无感/开环/PWM 控制,0x13:有感/开环/PWM 控制, 0x0c:无感/闭环/航模 PWM 控制,0x1c:有感/闭环/航模 PWM 控制,0x04:无感/开环/航模 PWM 控制,0x14:有感/开环/航模 PWM 控制, 0x0d:无感/闭环/摇杆控制,0x1d:有感/闭环/摇杆控制,0x05:无感/开环/摇杆控制,0x15:有感/开环/摇杆控制, 0x08:无感/闭环/通讯控制,0x18:有感/闭环/通讯控制,0x00:无感/开环/通讯控制,0x10:有感/开环/通讯控制,
0x0014(20)负载率0~10000x03数值乘以 0.1%为 PWM 百分比,单位为‰
0x0015(21)입력 PWM 占空比0~10000x03数值乘以 0.1%为입력 PWM 占空比,单位为‰
0x0016(22)电压0~1000x03电源电压,单位为 V
0x0017(23)온도-200~2000x03电路板온도,单位为℃
0x0018(24)保留   

2.3  모터控制레지스터

모터控制레지스터如表 2.3 示。

表 2.3 모터控制레지스터

레지스터주소설명取值范围支持기능 코드备注
 0x0020 (32) 정지 0, 1, 2 0x03 0x060:正常정지1:紧急制动2:自由정지
0x0021 (33)设定目标매개변수之高半字闭环:-最高转速~ 最高转速开环:-1000~1000  0x03 0x06 0x10当速度控制为闭环,代表速度,则单位为 RPM;当速度控制为开环,代表 PWM,数值乘以 0.1%为 PWM 百分比。正数表示正转,负数表示反转, 0 正常정지
0x0022 (34)设定目标매개변수之低半字
 0x0023 (35) 测试控制 0, 1 0x03 0x060:취소测试,1:相序학습
 0x0024 (36) 출력控制 0, 1 0x03 0x060:출력低电平1:출력高电平
0x0025~0x27(37)~ (39) 保留   

2.4  모터매개변수설정레지스터

모터매개변수설정레지스터如表 2.4 示。

表 2.4 모터매개변수설정레지스터

레지스터주소설명取值范围支持기능 코드备注
0x0028 (40)모터额定电流0~15000x03 0x06 0x10数值乘以 0.01 为电流值, 单位为 A
0x0029 (41)모터最大转速之高半字 0~110000 0x03 0x06 0x10 单位为 RPM
0x002A (42)모터最大转速之低半字
0x002B (43)모터最小转速之高半字 0~110000 0x03 0x06 0x10单位为 RPM,一般设置在 200RPM 以下
0x002C (44)모터最小转速之低半字
 0x002D (45)모터极对数 0~65535 0x03 0x06 0x10定子南北磁极对数,是磁 极的一半
 0x002E (46) 모터 1 、2 相相序데이터高바이트为 0~6低바이트为 0~6 0x03 0x06 0x10低바이트为 1 相高바이트为 2 相
 0x002F (47) 모터 3 、4 相相序데이터高바이트为 0~6低바이트为 0~6 0x03 0x06 0x10低바이트为 3 相高바이트为 4 相
 0x0030 (48) 모터 4 、6 相相序데이터高바이트为 0~6低바이트为 0~6 0x03 0x06 0x10低바이트为 4 相高바이트为 6 相
 0x0031 (49) 相序학습状态 0,1 0x03 0x06 0x100:未학습1:已经학습
   0x0032 (50)   无感启动负载大小   0~4   0x03 0x06 0x100:轻载1:中载2:重载3:小惯性负载4:大惯性负载
0x0033 (51)闭环速度加速加速度100~最大速度0x03 0x06 0x10单位为 RPM/S
0x0034 (52)闭环速度减速加速度100~最大速度0x03 0x06 0x10单位为 RPM/S
0x0035 (53)开环速度加速加速度4~5000x03 0x06 0x10单位为%/S
0x0036 (54)开环速度减速加速度4~5000x03 0x06 0x10单位为%/S
 0x0037 (55) 정지모드 0, 1, 2 0x03 0x06 0x100:正常정지1:紧急制动2:自由정지
 0x0038 (56) 自动换向모드 0, 1, 2 0x03 0x06 0x100:正常换向1:急停换向
 0x0039 (57) 停机锁相电流 0~1500 0x03 0x06 0x100:不停机锁相其他数值:数值乘以 0.01 为电流值,单位为 A
0x003A~0x 3F(58)~ (63) 保留   

2.5 系统매개변수설정레지스터

系统매개변수설정레지스터如表 2.5 示。

表 2.5 系统매개변수설정레지스터

레지스터주소설명取值范围支持기능 코드备注
0x0040 (64)堵转停机时间0~666350x03 0x06 0x10单位为 mS
0x0041 (65)保护关断电流0~42000x03 0x06 0x10数值乘以 0.01 为电流值, 单位为 A
0x0042 (66)内部电位器控制阈值最大值0~33000x03 0x06 0x10单位为 mV
0x0043 (67)内部电位器控制阈值最小值0~33000x03 0x06 0x10单位为 mV
0x0044 (68)外部입력控制阈值最大值0~100000x03 0x06 0x10单位为 mV
0x0045(69)外部입력控制阈值最小值0~100000x03 0x06 0x10单位为 mV
0x0046 (70)保护电压阈值最大值(过压保护 电压)8~560x03 0x06 0x10 保护电压范围,单位为 V
0x0047 (71)保护电压阈值最小值(欠压保护 电压)8~560x03 0x06 0x10
 0x0048 (72)电压保护设置 0,1 0x03 0x06 0x100:不保护1:电压保护
   0x0049(73)   출력유형   0,1,2,3,4,5   0x03 0x06 0x100:不출력(即출력低电 平)1:长출력2:报警信号출력3:FG 反馈信号출력4:停机信号출력5:通讯控制

2.6 PID 매개변수설정레지스터

闭环控制 PID매개변수설정레지스터如表 2.6 示。

表 2.6 闭环控制 PID 매개변수설정레지스터

레지스터주소설명取值范围支持기능 코드备注
0x004A (74)速度闭环 P 스케일 계수高半字 建议 1~327680 0x03 0x10 数值除以 32768 为实际值
0x004B (75)速度闭环 P 스케일 계수低半字
0x004C (76)速度闭环 I 스케일 계수高半字 建议 1~326780 0x03 0x10 数值除以 32768 为实际值
0x004D (77)速度闭环 I 스케일 계수低半字
0x004E (78)速度闭环 D 스케일 계수高半字 建议 1~326780 0x03 0x10 数值除以 32768 为实际值
0x004F (79)速度闭环 D 스케일 계수低半字

2.7 通讯매개변수설정레지스터

通讯매개변수설정레지스터如表 2.6 示。

表 2.7 通讯매개변수설정레지스터

레지스터주소설명取值范围支持기능 코드备注
0x0050 (80)485通讯中断制动时间0~666350x03 0x060x10单位为 S
0x0051 (81)485通讯设备주소0~2550x03 0x060x10Modbus 从设备주소
    0x0052 (82)    485通讯시리얼 포트통신 속도    0~4   0x03 0x060x100:96001:192002:384003:576004: 115200单位为 bps
  0x0053 (83)  485 通讯시리얼 포트检验방식  0~3  0x03 0x060x100:无+정지 비트1:偶+1 정지 비트2:奇+1 정지 비트3:无+2 정지 비트
0x0054(84)~0 x0059 (89)保留   

3.CRC16 的계산

C 언어 CRC 生成函数如程序 3.1所示。所有的可能的 CRC  值都被预装在两个数组中, 当계산프레임콘텐츠时可  以简单的索引即可。 一个数组含有 16 位 CRC 域的所有 256 个可能的高位바이트,另一个数组含有低位바이트的值。 这种索引访问 CRC  的방식提供了比对프레임缓冲区的每个新문자都계산新的 CRC  更快的方法。

注意: 此函数内部执行高/低 CRC  바이트的交换。此函数返回的是已经经过交换的 CRC  值。也就是说,从该 函数返回的 CRC 值可以直接放置于프레임用于보내기。

函数使用两个매개변수:

unsigned char *puchMsg;指向含有用于生成 CRC  的2진수데이터프레임缓冲区的指针。

unsigned short us데이터Len;프레임缓冲区的바이트数。

注:以下 CRC16 生成函数程序摘自 <MODBUS over Serial Line Specification and Implementation Guide

V1.02> 。

程序 3.1   CRC16 生成函数程序清单

/*  高位바이트的 CRC 值*/

static unsigned char auchCRCHi[] = {

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,

0x40

} ;

/* 低位바이트的 CRC 值*/

static char auchCRCLo[] = {

0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4,

0x04, 0xCC, 0x0C, 0x0D, 0xCD, 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD,

0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,

0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7,

0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,

0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2,

0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,   0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB,  0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,

0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91,

0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,

0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88,  0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,

0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80,

0x40

};

unsigned short CRC16(puchmsg, us데이터Len)     /*  函数以 unsigned short  유형返回 CRC */

unsigned char *puchMsg,                                      /*  用于계산 CRC  的프레임*/

unsigned short us데이터Len/*  프레임中的바이트数*/
{ 
unsigned charuchCRCHi = 0xFF;/* CRC  的高바이트初始化*/

unsigned charuchCRCLo = 0xFF;     /* CRC  的低바이트初始化*/

unsigned uIndex ;           /* CRC  查询表索引*/

while (us데이터Len--)

{

/*  完成整个프레임缓冲区*/

uIndex = uchCRCLo ^ *puchMsg++; /*  계산 CRC */

uchCRCLo = uchCRCHi ^ auchCRCHi[uIndex];

uchCRCHi = auchCRCLo[uIndex];

}

return (uchCRCHi << 8 | uchCRCLo);

}

실제 프로젝트에 이 자료를 활용하시겠습니까?

도구 센터에서 프레임 분석, CRC 검증, 장비 디버깅을 진행하거나 요청을 제출하여 선정 및 연동 제안을 받아보세요.

엔지니어 회원

이 글을 실행 가능한 디버깅 자료로 활용하세요

가입하면 고급 프레임 분석, 자료 패키지 다운로드, 코드 예제, 엔지니어링 사례, 우선 기술 지원을 이용할 수 있어 실제 프로젝트 납품에 적합합니다.

고급 도구 무제한 이용
자료 패키지와 코드 패키지
완전한 엔지니어링 사례 라이브러리
우선 기술 지원 채널

답글 작성

이메일 주소는 공개되지 않습니다. 必填项已用 * 标注