Lydia - Printhead
enums.h
Go to the documentation of this file.
1 #ifndef ENUMS_H
2 #define ENUMS_H
3 
4 #include <enums.h>
5 
6 
8 //
9 // Error Codes
10 
11 #define E_OK 0 //all good
12 #define E_SKIP 10 //all good
13 #define E_QUEUED 20 //all good
14 #define E_INVALID_PARAMETER 30 //all good
15 #define E_NO_SUCH_PID 2001 //cant find PID
16 #define E_QUERY_BUFFER_END 99 //have no free query buffer slot
17 
18 #define E_USER_START 1000 // base offset for sub system errors
19 
20 // VFD
21 #define E_VFD_RUN 300 // Motor should spin but dosnt
22 #define E_VFD_LOSS 301 // Motor should not spin but does
23 
24 #define E_VFD_CUSTOM 1000 // Custom VFD error
25 
26 #define E_VFD_NORMAL E_VFD_CUSTOM // VFD Normal Operation
27 #define E_VFD_OVERLOAD E_VFD_CUSTOM + 1 // Motor overload
28 #define E_VFD_TIMEOUT E_VFD_CUSTOM + 2 // Timeout
29 
30 
31 // PID
32 #define E_PID_CUSTOM 2000 // Custom PID error
33 #define E_PID_TIMEOUT E_PID_CUSTOM + 2 // Timeout
34 #define E_PID_OVERHEAT E_PID_CUSTOM + 3 // Timeout
35 
36 // Extruder Feed
37 #define E_FEED_OVERLOAD 4001
38 
40 //
41 // Component Keys
42 typedef enum COMPONENT_KEY
43 {
70 
71 enum ERROR
72 {
73  ERROR_OK = 0,
76 };
77 
79 {
80  WAITING = 0,
81  QUERY = 1,
82  RESPONSE = 2,
83  IDLE = 3,
84  UNKNOWN = 4,
85 };
86 
87 // Modbus query state
89 {
90  QUEUED = 1,
92  SENT = 3,
93  RESPONDED = 4,
94  DONE = 5
95 };
96 
97 #define ku8MBReadCoils 0x01
98 #define ku8MBReadDiscreteInputs 0x02
99 #define ku8MBWriteSingleCoil 0x05
100 #define ku8MBWriteMultipleCoils 0x0F
101 
102 // Modbus function codes for 16 bit access
103 #define ku8MBReadHoldingRegisters 0x03
104 #define ku8MBReadInputRegisters 0x04
105 #define ku8MBWriteSingleRegister 0x06
106 #define ku8MBWriteMultipleRegisters 0x10
107 #define ku8MBMaskWriteRegister 0x16
108 #define ku8MBReadWriteMultipleRegisters 0x17
109 #define ku8MBLinkTestOmronMX2Only 0x08
110 
111 // Modbus protocol errors
112 #define ERR_MODBUS_0x01 -41 // Modbus 0x01 protocol illegal function exception
113 #define ERR_MODBUS_0x02 -42 // Modbus 0x02 protocol illegal data address exception
114 #define ERR_MODBUS_0x03 -43 // Modbus 0x03 protocol illegal data value exception
115 #define ERR_MODBUS_0x04 -44 // Modbus 0x4 protocol slave device failure exception
116 #define ERR_MODBUS_0xe0 -45 // Modbus 0xe0 Master invalid response slave ID exception
117 #define ERR_MODBUS_0xe1 -46 // Modbus 0xe1 Master invalid response function exception
118 #define ERR_MODBUS_0xe2 -47 // Modbus 0xe2 Master response timed out exception
119 #define ERR_MODBUS_0xe3 -48 // Modbus 0xe3 Master invalid response CRC exception
120 #define ERR_MODBUS_UNKNOW -56 // Modbus unknown error (protocol failure)
121 #define ERR_MODBUS_STATE -57 // Forbidden ( invalid ) state of the inverter
122 #define ERR_MODBUS_BLOCK -58 // Attempt to turn on the VT with the inverter locked
123 
124 // Omron Mx2 specific
125 #define ERR_MODBUS_MX2_0x01 -49 // Omron mx2 Exception code 0x01 The specified function is not supported
126 #define ERR_MODBUS_MX2_0x02 -50 // Omron mx2 Exception code 0x02 The specified function was not found.
127 #define ERR_MODBUS_MX2_0x03 -52 // Omron mx2 Exception code 0x03 Unacceptable data format
128 #define ERR_MODBUS_MX2_0x05 -52 // Omron mx2 communication error over Modbus (function communication check 0x08 Omron mx2)
129 #define ERR_MODBUS_MX2_0x21 -53 // Omron mx2 Exception code 0x21 Data written to the storage register is outside the inverter
130 #define ERR_MODBUS_MX2_0x22 -54 // Omron mx2 Exception code 0x22 These functions are not available for the inverter
131 #define ERR_MODBUS_MX2_0x23 -55 // Omron mx2 Exception code 0x23 The register (bit) into which the value should be written is read-only
132 
133 #define ERR_MODBUS_TIMEOUT 255 // App specific error code for timeouts
134 
136 //
137 // PH - Firmware specific register mapping - TCP & RS485
138 //
139 
140 #define MB_R_SYSTEM_ERROR 0
141 
142 // Omron Register Mapping (Read mirror)
143 #define MB_R_FREQ_TARGET 1
144 #define MB_R_VFD_LOAD 2
145 #define MB_R_VFD_STATUS 3
146 #define MB_R_VFD_STATE 4
147 #define MB_R_VFD_DIRECTION 4
148 
149 // Omron - MX2 related PlasticHub Coil Mapping (Write)
150 #define MB_W_VFD_RUN 5
151 #define MB_W_FREQ_TARGET 6
152 #define MB_W_DIRECTION 7
153 #define MB_R_VFD_APP_STATE 8
154 
155 #define MB_W_RESET_REG 100 // Reset the controller via Modbus (FN 0x3)
156 #define MB_R_APP_STATE_REG 9 // Application state register (FN 0x3)
157 
158 
160 // Omron related address offset : PID & MX2
161 #define MB_REGISTER_OFFSET 10
162 
163 #define MB_W_FEED_VFD_RATIO MB_REGISTER_OFFSET + 6
164 
165 // TCP Inbound write register - Omron-E5 : Variable Register
166 //#define MB_W_PID_0_USER MB_REGISTER_OFFSET + 6
167 //#define MB_W_PID_1_USER MB_REGISTER_OFFSET + 7
168 //#define MB_W_PID_2_USER MB_REGISTER_OFFSET + 8
169 
170 // TCP read register - Omron-E5 : Variable Register Monitor
171 #define MB_R_PID_0_USER_MON MB_REGISTER_OFFSET + 3
172 #define MB_R_PID_1_USER_MON MB_REGISTER_OFFSET + 4
173 #define MB_R_PID_2_USER_MON MB_REGISTER_OFFSET + 5
174 
175 // TCP Inbound write register - Omron-E5 : SetPoint
176 #define MB_W_PID_1_SP MB_REGISTER_OFFSET + 0
177 #define MB_W_PID_2_SP MB_REGISTER_OFFSET + 1
178 #define MB_W_PID_3_SP MB_REGISTER_OFFSET + 2
179 
181 // TemperatureController related address offset for internal values
182 #define MB_REGISTER_OFFSET_TC MB_REGISTER_OFFSET + 10
183 #define MB_REGISTER_OFFSET_TC_RANGE 3
184 // RS485 read register - TemperatureController
185 #define MB_R_PID_1_PV MB_REGISTER_OFFSET_TC + 0
186 #define MB_R_PID_1_SP MB_REGISTER_OFFSET_TC + 1
187 #define MB_R_PID_1_STATE MB_REGISTER_OFFSET_TC + 2
188 
189 #define MB_R_PID_2_PV MB_REGISTER_OFFSET_TC + 3
190 #define MB_R_PID_2_SP MB_REGISTER_OFFSET_TC + 4
191 #define MB_R_PID_2_STATE MB_REGISTER_OFFSET_TC + 5
192 
193 #define MB_R_PID_3_PV MB_REGISTER_OFFSET_TC + 6
194 #define MB_R_PID_3_SP MB_REGISTER_OFFSET_TC + 7
195 #define MB_R_PID_3_STATE MB_REGISTER_OFFSET_TC + 8
196 #define MB_R_PRINT MB_REGISTER_OFFSET + 9
197 
199 //
200 // Modbus System Commands
201 //
202 #define MB_R_SYSTEM_CMD_PRINT_REGS 2
203 #define MB_R_SYSTEM_CMD_PRINT_QUEUE 1
204 #define MB_R_SYSTEM_CMD_PRINT_MEMORY 5
205 #define MB_R_SYSTEM_CMD_PRINT_VFD 6
206 #define MB_R_SYSTEM_CMD_PRINT_PIDS 7
207 
209 //
210 // Relay Addresses
211 //
212 #define MB_REGISTER_OFFSET_RELAYS_READ MB_REGISTER_OFFSET_TC + 20
213 
214 #define MB_R_RELAY_0 MB_REGISTER_OFFSET_RELAYS_READ + 1
215 #define MB_R_RELAY_1 MB_REGISTER_OFFSET_RELAYS_READ + 2
216 #define MB_R_RELAY_2 MB_REGISTER_OFFSET_RELAYS_READ + 3
217 #define MB_R_RELAY_3 MB_REGISTER_OFFSET_RELAYS_READ + 4
218 #define MB_R_RELAY_4 MB_REGISTER_OFFSET_RELAYS_READ + 5
219 #define MB_R_RELAY_5 MB_REGISTER_OFFSET_RELAYS_READ + 6
220 #define MB_R_RELAY_6 MB_REGISTER_OFFSET_RELAYS_READ + 7
221 #define MB_R_RELAY_7 MB_REGISTER_OFFSET_RELAYS_READ + 8
222 
224 //
225 // Analog Addresses
226 //
227 #define MB_REGISTER_OFFSET_ANALOG_READ MB_REGISTER_OFFSET_RELAYS_READ + 10
228 
229 #define MB_R_ANALOG_0 MB_REGISTER_OFFSET_ANALOG_READ + 1
230 #define MB_R_ANALOG_1 MB_REGISTER_OFFSET_ANALOG_READ + 2
231 #define MB_R_ANALOG_2 MB_REGISTER_OFFSET_ANALOG_READ + 3
232 
234 //
235 // Switch Addresses
236 //
237 #define MB_REGISTER_OFFSET_SWITCH_READ MB_REGISTER_OFFSET_ANALOG_READ + 10
238 
239 #define MB_R_SWITCH_0 MB_REGISTER_OFFSET_SWITCH_READ + 1
240 #define MB_R_SWITCH_1 MB_REGISTER_OFFSET_SWITCH_READ + 2
241 #define MB_R_SWITCH_2 MB_REGISTER_OFFSET_SWITCH_READ + 3
242 #define MB_R_SWITCH_3 MB_REGISTER_OFFSET_SWITCH_READ + 4
243 
245 //
246 // Stepper Addresses
247 //
248 #define MB_REGISTER_OFFSET_STEPPER MB_REGISTER_OFFSET_SWITCH_READ + 10
249 
250 #define MB_RW_STEPPER_SPEED_0 MB_REGISTER_OFFSET_STEPPER
251 #define MB_RW_STEPPER_DIR_OFFSET 1
252 #define MB_RW_STEPPER_STATUS_OFFSET 2
253 #define MB_RW_STEPPER_USER_OFFSET 3
254 
256 //
257 // Monitoring & Feedback Addresses
258 //
259 #define MB_REGISTER_OFFSET_MONITORING MB_REGISTER_OFFSET_STEPPER + 10
260 #define MB_MONITORING_STATUS_VFD_MAX_LOAD MB_REGISTER_OFFSET_MONITORING + 1
261 #define MB_MONITORING_STATUS_FEEDBACK_0 MB_MONITORING_STATUS_VFD_MAX_LOAD + 3
262 #define MB_MONITORING_STATUS_FEEDBACK_1 MB_MONITORING_STATUS_VFD_MAX_LOAD + 4
263 #define MB_MONITORING_STATUS_VFD_RETRACT_STATE MB_REGISTER_OFFSET_MONITORING + 5
264 #define MB_MONITORING_STATUS_VFD_RUN_MODE MB_REGISTER_OFFSET_MONITORING + 6
265 #define MB_MONITORING_STATUS_VFD_CURRENT MB_REGISTER_OFFSET_MONITORING + 7
266 
268 //
269 // Omron - MX2 States
270 
271 #define OMRON_STATE_ACCELERATING 4
272 #define OMRON_STATE_DECELERATING 2
273 #define OMRON_STATE_RUNNING 3
274 #define OMRON_STATE_STOPPED 1
275 #define OMRON_STATE_ERROR 8
276 
277 // Omron - MX2 states
278 #define OMRON_STATUS_STOPPED 2
279 #define OMRON_STATUS_RUNNING 0
280 // Number of Omron Status Poll Registers
281 #define OMRON_STATUS_POLL_REGISTERS 7
282 
283 
284 // Omron Response Format (E5DC-B_H175-E1-08.pdf : 4-5 / 4.1.3)
285 // 03 : 86 : 04 : E2 : 63
286 // Slave | FN | Error Code | CRC
287 //
288 // Error Codes
289 // -> 01 Function Error Code : An unsupported function code was received.
290 // -> 02 Variable address Error : The specified variable area address is out-of-range.
291 // -> 03 Variable data Error : The amount of data does not match the number of
292 // elements.
293 // The byte count is not 2 times the number of elements.
294 // The response length exceeds the size of the communications buffer.
295 // The command code or related information in the operation command
296 //-> 04 Operation error : The write data contents are not allowed in the present operation mode.
297 // • The Communications Writing parameter is set to “OFF” (disabled).
298 // • Attempted to write to a parameter in setup area 1 from setup area 0.
299 // • Attempted to write to a protect parameter from other than the protect level.
300 // • AT execution is in progress.
301 // • The command cannot be processed.
302 // Set 'cmwt' to 'on' 7-1-3
303 
304 #endif
QUERY
@ QUERY
Definition: enums.h:81
COMPONENT_KEY_RELAY_4
@ COMPONENT_KEY_RELAY_4
Definition: enums.h:50
COMPONENT_KEY_MB_ANALOG_2
@ COMPONENT_KEY_MB_ANALOG_2
Definition: enums.h:61
COMPONENT_KEY_MB_RELAY_2
@ COMPONENT_KEY_MB_RELAY_2
Definition: enums.h:58
PROCESSING
@ PROCESSING
Definition: enums.h:91
COMPONENT_KEY_RELAY_1
@ COMPONENT_KEY_RELAY_1
Definition: enums.h:47
COMPONENT_KEY_STEPPER_1
@ COMPONENT_KEY_STEPPER_1
Definition: enums.h:65
ERROR_WARNING
@ ERROR_WARNING
Definition: enums.h:74
IDLE
@ IDLE
Definition: enums.h:83
RESPONSE
@ RESPONSE
Definition: enums.h:82
COMPONENT_KEY_NONE
@ COMPONENT_KEY_NONE
Definition: enums.h:44
COMPONENT_KEY_MB_RELAY_1
@ COMPONENT_KEY_MB_RELAY_1
Definition: enums.h:57
COMPONENT_KEY_MB_ANALOG_3POS_SWITCH_0
@ COMPONENT_KEY_MB_ANALOG_3POS_SWITCH_0
Definition: enums.h:62
COMPONENT_KEY_RELAY_3
@ COMPONENT_KEY_RELAY_3
Definition: enums.h:49
COMPONENT_KEY_MB_ANALOG_3POS_SWITCH_1
@ COMPONENT_KEY_MB_ANALOG_3POS_SWITCH_1
Definition: enums.h:63
COMPONENT_KEY_FEEDBACK_0
@ COMPONENT_KEY_FEEDBACK_0
Definition: enums.h:66
COMPONENT_KEY_STEPPER_0
@ COMPONENT_KEY_STEPPER_0
Definition: enums.h:64
MBB_STATE
MBB_STATE
Definition: enums.h:78
COMPONENT_KEY_MB_RELAY_0
@ COMPONENT_KEY_MB_RELAY_0
Definition: enums.h:56
COMPONENT_KEY_MB_ANALOG_0
@ COMPONENT_KEY_MB_ANALOG_0
Definition: enums.h:59
ERROR_FATAL
@ ERROR_FATAL
Definition: enums.h:75
QUERY_STATE
QUERY_STATE
Definition: enums.h:88
COMPONENT_KEY_MB_ANALOG_1
@ COMPONENT_KEY_MB_ANALOG_1
Definition: enums.h:60
WAITING
@ WAITING
Definition: enums.h:80
ERROR_OK
@ ERROR_OK
Definition: enums.h:73
DONE
@ DONE
Definition: enums.h:94
COMPONENT_KEY_APP
@ COMPONENT_KEY_APP
Definition: enums.h:45
QUEUED
@ QUEUED
Definition: enums.h:90
enums.h
COMPONENT_KEY_PID_1
@ COMPONENT_KEY_PID_1
Definition: enums.h:53
COMPONENT_KEY_FEEDBACK_1
@ COMPONENT_KEY_FEEDBACK_1
Definition: enums.h:67
COMPONENT_KEY_END
@ COMPONENT_KEY_END
Definition: enums.h:68
COMPONENT_KEY_PID
@ COMPONENT_KEY_PID
Definition: enums.h:46
COMPONENT_KEY_RELAY_5
@ COMPONENT_KEY_RELAY_5
Definition: enums.h:51
SENT
@ SENT
Definition: enums.h:92
RESPONDED
@ RESPONDED
Definition: enums.h:93
COMPONENT_KEY
COMPONENT_KEY
Definition: enums.h:42
COMPONENT_KEY_VFD_LOAD
@ COMPONENT_KEY_VFD_LOAD
Definition: enums.h:55
COMPONENT_KEY_RELAY_2
@ COMPONENT_KEY_RELAY_2
Definition: enums.h:48
UNKNOWN
@ UNKNOWN
Definition: enums.h:84
COMPONENT_KEY_PID_0
@ COMPONENT_KEY_PID_0
Definition: enums.h:52
COMPONENT_KEY_VFD
@ COMPONENT_KEY_VFD
Definition: enums.h:54
ERROR
ERROR
Definition: enums.h:71