firmware-base/docs-c/components/SakoTypes.md
2025-06-04 13:45:12 +02:00

3.5 KiB

title description keywords
SAKO VFD Control Library Documentation for SAKO VFD (Variable Frequency Drive) interface component
SAKO
VFD
Variable Frequency Drive
Modbus
ESP32
Industrial Control

SAKO VFD Control Library

Path: src/SAKO.h

Revision History: Initial documentation

A library for interfacing with SAKO Variable Frequency Drives (VFDs) via Modbus communication. This component provides standardized access to SAKO VFD registers, enabling monitoring and control of motors in industrial applications.

REQUIREMENTS

  • RS-485 communication interface (hardware or software)
  • Modbus RTU protocol support
  • SAKO VFD with Modbus communication capability

FEATURES

  • Comprehensive enumeration of SAKO VFD registers
  • Support for monitoring parameters (frequency, voltage, current, etc.)
  • Direction control (forward, reverse, jogging, etc.)
  • Error code definitions and handling
  • Parameter group communication access

DEPENDENCIES

graph TD
    App --> SAKO
    SAKO --> ModbusRTU
    ModbusRTU --> UART

BEHAVIOUR

stateDiagram-v2
    [*] --> Initialize
    Initialize --> Idle
    Idle --> ReadStatus: Poll Status
    Idle --> Control: Set Direction
    Idle --> ReadRegisters: Request Data
    ReadStatus --> Idle: Process Status
    Control --> Idle: Command Sent
    ReadRegisters --> Idle: Process Data
    ReadStatus --> ErrorHandling: Error Detected
    ErrorHandling --> Idle: Reset Error

TODOS

PERFORMANCE

  • Optimize polling frequency based on application requirements
  • Consider implementing caching mechanism for frequently accessed registers
  • Add prioritization for critical status parameters

SECURITY

  • Implement validation for register values before writing
  • Add support for communication timeouts
  • Consider checksum validation for critical commands

COMPLIANCE

  • Verify compatibility with all SAKO VFD models
  • Ensure compliance with industrial communication standards
  • Document parameter ranges according to SAKO specifications

RECOMMENDATIONS

  • Maintain a minimum poll interval of 50ms to avoid bus contention
  • Use parameter group access addresses as specified in the SAKO manual
  • Implement error handling and retry logic for communication failures
  • Consider using separate tasks for status monitoring and control operations

EXAMPLE

#ifdef ENABLE_SAKO_VFD
  sakoVFD = new SAKOVFD(
    this,                 // owner
    &modbus,              // modbus interface
    SAKO_VFD_SLAVE_ADDR,  // modbus slave address
    SAKO_VFD_ID           // component ID
  );
  
  if (sakoVFD) {
    components.push_back(sakoVFD);
    Log.infoln(F("SAKO VFD initialized. Slave Address: %d, ID: %d"), 
              SAKO_VFD_SLAVE_ADDR, SAKO_VFD_ID);
              
    // Configure monitoring parameters
    sakoVFD->enableMonitoring(E_SAKO_MON::E_SAKO_MON_RUNNING_FREQUENCY_HZ, true);
    sakoVFD->enableMonitoring(E_SAKO_MON::E_SAKO_MON_OUTPUT_CURRENT_A, true);
    sakoVFD->enableMonitoring(E_SAKO_MON::E_SAKO_MON_OUTPUT_VOLTAGE_V, true);
  }
  else {
    Log.errorln(F("SAKO VFD initialization failed."));
  }
#endif

References

The SAKO VFD component uses parameter group communication access addresses as defined in the SAKO VFD manual:

  • P0 ~ PE Group: 0xF000 - 0xFEFF
  • A0 ~ AC Group: 0xA000 - 0xACFF
  • U0 Group (Monitoring): 0x7000 - 0x70FF

For detailed information about specific registers and their meanings, refer to the SAKO VFD Operation Manual.