KND CNC
The KND CNC driver accesses KND K2000, K1000 C/Ci/F/Fi, and K1000TTCi series CNC systems via HTTP protocol, enabling real-time collection of various device operation data, including program name, spindle override, operating status, PLC points, etc.
Device Settings
| Field | Description |
|---|---|
| host | Device IP address |
| port | Device port number, default 8000 |
Supported Data Types
- uint8
- int8
- uint16
- int16
- uint32
- int32
- uint64
- int64
- float
- double
- bool
- bit
- string
CNC Data
address[.m]
| Tag Identifier (Address) | Description | Data Type | Parameter | Remarks |
|---|---|---|---|---|
| systemInfo.id | ID | int32 | - | - |
| systemInfo.type | System Type | string | - | - |
| systemInfo.manufacturer | Manufacturer | string | - | - |
| systemInfo.manufacture-time | Manufacture Time | string | - | - |
| systemInfo.soft-version | System Software Version | string | - | - |
| systemInfo.fpga-version | FPGA Version | string | - | - |
| systemInfo.ladder-version | Ladder Version | string | - | - |
| systemInfo.user-axes | User Axis List | array string | - | - |
| systemStatus.run-status | Current Run Status | int32 | - | 0: CNC is stopped 1: CNC is paused (feed hold) 2: CNC is running |
| systemStatus.opr-mode | Current Operation Mode | int32 | - | 0: Manual data input mode 1: Automatic mode 2: Invalid mode 3: Edit mode 4: Single step mode 5: Manual mode 8: Handle wheel mode 9: Machine zero return mode 10: Program zero return mode |
| systemStatus.ready | Is Ready | bool | - | - |
| systemStatus.not-ready-reason | Not Ready Reason Mask | int32 | - | 0x1: Emergency stop signal active 0x2: Servo not ready 0x4: IO not ready (remote IO devices, etc.) |
| systemStatus.alarms | Alarm List | array string | - | - |
| alarms | Alarm Description Information | string | m | prm-switch: Parameter switch alarm (system parameter switch or servo parameter switch) reboot: Power on/off alarm plc: PLC alarm or prompt (external alarm) ps: PS alarm (operation error) over-travel: Over-travel alarm over-heat: Overheat alarm mem: Memory alarm servo: Servo drive alarm servo-bus: Servo bus alarm over-workarea: Out of work area alarm io-bus: IO bus alarm io-module: IO module alarm manufacture: Machine factory alarm forbid-move: Axis movement not allowed when axis moves |
| absolute | Absolute Coordinates | double | m | X Y Z |
| machine | Machine Coordinates | double | m | X Y Z |
| relative | Relative Coordinates | double | m | X Y Z |
| cycleTime | Processing Time | int32 | m | total: Processing time (unit: seconds) cur: Cycle time (unit: seconds) |
| workCounts | Processing Counts | int32 | m | total: Total processing count batch: Single batch processing count |
| workCountGoals | Target Counts | int32 | m | total: Total target count batch: Single batch target count |
| feedOverride | Current Feed Override | double | - | - |
| jogOverride | Current Jog Override | double | - | - |
| rapidOverride | Current Rapid Override | double | - | - |
| handleOverride | Current Handle/Single Step Override | double | - | - |
| spindleOverride | Current Spindle Override | double | m | 1: Spindle 1 2: Spindle 2 3: Spindle 3 |
| spSpeed | Current Spindle Speed | double | m | 1: Spindle 1 2: Spindle 2 3: Spindle 3 |
| feedrate | Actual Feedrate | double | - | - |
| g54 | G54 Work Coordinate System | double | m | X Y Z |
| g55 | G55 Work Coordinate System | double | m | X Y Z |
| g56 | G56 Work Coordinate System | double | m | X Y Z |
| g57 | G57 Work Coordinate System | double | m | X Y Z |
| g58 | G58 Work Coordinate System | double | m | X Y Z |
| g59 | G59 Work Coordinate System | double | m | X Y Z |
| workCoorsCur | Current Work Coordinate System | string | - | - |
| vars | Macro Variables | double | m | Macro variable number |
| progCur | Current Program | int32 | - | - |
| progExecStatus | Program Execution Status | int32 | m | O: Program O number N: Program N number P: Paragraph number |
TIP
Spindle numbers start from 1 and increase according to the actual number of spindles.
Macro variables (vars) are readable and writable, others are read-only.
CNC Address Examples
| Address | Description |
|---|---|
| systemInfo.type | Read processing main program number |
| machine.X | Read X-axis coordinate |
| vars.100 | Read/write macro variable 100 |
| feedOverride | Read current feed override |
| alarms.plc | PLC alarm or prompt (external alarm) |
| spindleOverride.1 | Spindle 1 override |
| spSpeed.1 | Spindle 1 speed |
| cycleTime.cur | Cycle time |
PLC Data
Address Format
AREA ADDRESS[.BIT][.LEN]
| Identifier | Description | Type | Permission |
|---|---|---|---|
| X | DI Input | all | Read |
| Y | DO Output | all | Read |
| F | NC -> PLC | all | Read |
| G | PLC -> NC | all | Read |
| R | PLC Internal Control Relay | all | Read/Write |
| S | PLC Internal Special Flag | all | Read |
| K | PLC Internal Power-On Relay | all | Read |
| D | Data Table | all | Read |
| TL | Label Sequence Number | all | Read |
TIP
Currently, only part of the R area can be set, i.e., R17000-R17099, and it requires explicit permission in the ladder diagram. The ladder diagram must set G138 to 181 to allow remote modification of the above R area.
AREA ADDRESS[.cur/conf]
| Identifier | Description | Type | Permission |
|---|---|---|---|
| T | Timer | int32/uint32 | Read |
| C | Counter | int32/uint32 | Read |
TIP
When reading timers and counters, you need to specify whether it is the set value or the current value.
Common PLC Points
| Address | Type | Description |
|---|---|---|
| X0.0 | bit | DI area, data at address 0 |
| Y0.0 | bit | DO area, data at address 0 |
| D10 | int32 | Data table area, data at address 10 |
| R17000 | float | Internal control relay area, data at address 17000 |
| D20.24 | string | Data table area, data at address 20 |
| T0.conf | int32 | Timer area, set value data at address 0 |
| T0.cur | int32 | Timer area, current data at address 0 |