4.7 KiB
4.7 KiB
Default IP: ==192.168.124.1== with the switch X1 in 1 and the X16 in 0
Output:
_400B_1_AC_Drv_Ctrl_Word (Control Word):
Bit | Función | Descripción |
---|---|---|
0 | Run forward (CW) | 1 = Run forward, 0 = Stop |
1 | Run reverse (CCW) | 1 = Run reverse, 0 = Stop |
2 | Reset error | 0->1 edge: Reset error |
3 | Reserved | - |
4 | Reserved | - |
5 | Activate network control | 1 = Network control, 0 = Local control |
6 | Activate network setpoint | 1 = Network setpoint, 0 = Local setpoint |
7 | Reserved | - |
8 | Reserved | - |
9 | Reserved | - |
10 | Reserved | - |
11 | Reserved | - |
12 | Disable inverter | 1 = Disable inverter, 0 = Enable inverter |
13 | Activate quick stop | 1 = Activate quick stop, 0 = Deactivate quick stop |
14 | Disable PID controlling | 1 = Disable PID, 0 = Enable PID |
15 | Activate DC braking | 1 = Activate DC braking, 0 = Deactivate DC braking |
Input:
_400C_1_AC_Drv_Stat_Word (Status Word):
Bit | Función | Descripción |
---|---|---|
0 | Fault/Trip active | 1 = Fault active, 0 = No fault |
1 | Warning active | 1 = Warning active, 0 = No warning |
2 | Running forward | 1 = Running forward, 0 = Not running forward |
3 | Running reverse | 1 = Running reverse, 0 = Not running reverse |
4 | Ready | 1 = Ready, 0 = Not ready |
5 | Network control active | 1 = Network control active, 0 = Local control active |
6 | Network setpoint active | 1 = Network setpoint active, 0 = Local setpoint active |
7 | At Reference | 1 = At reference speed, 0 = Not at reference speed |
8 | Profile-State bit 0 | Profile state (see note below) |
9 | Profile-State bit 1 | Profile state (see note below) |
10 | Profile-State bit 2 | Profile state (see note below) |
11 | Profile-State bit 3 | Profile state (see note below) |
12 | Process controller active | 1 = PID active, 0 = PID inactive |
13 | Torque mode active | 1 = Torque mode active, 0 = Speed mode active |
14 | Current limit reached | 1 = Current limit reached, 0 = Current below limit |
15 | DC braking active | 1 = DC braking active, 0 = DC braking inactive |
Nota sobre los bits de Profile-State (8-11): Estos bits codifican el estado del perfil del drive:
- 0: Manufacturer-specific (reservado)
- 1: Startup (inicialización del drive)
- 2: Not_Ready (voltaje principal apagado)
- 3: Ready (voltaje principal encendido)
- 4: Enabled (drive ha recibido comando de marcha)
- 5: Stopping (drive ha recibido comando de parada y está deteniéndose)
- 6: Fault_Stop (drive está detenido debido a una falta)
- 7: Faulted (han ocurrido faltas)
Setup on Rockwell
!Pasted image 20241111140305.png
!Pasted image 20241111140409.png
!Pasted image 20241111140129.png
AOI for Rockwell :
//
// Motor Protocol for Lenze 550i protec - Firmware 7.xx - mav - v0.1 - 11.2024
//
// From Drive:
// *************************
// 400C.0 : Fault/Trip
// 400C.1 : Warning active
// 400C.2 : Running Fordward
// 400C.3 : Running reverse
// 400C.4 : Ready
// 400C.13 : Current limit reached
// 400C.14 : DC breaking active
// To Drive:
// ***************************
// 400B.0 : Run Fodrward
// 400B.1 : Run reverse
// 400B.2 : Reset
// 400B.5 : Activate network
// 400B.6 : Activate setpoint
// 400B.12 : Disable inverter
// 400B.13 : Activate quick stop
// 400B.15 : Activate DC breaking
//Plc->Drive: start command forward
IO_Drive.Telegram.Q._400B_1_AC_Drv_Ctrl_Word.0 := IO_Drive.Fw;
//Plc->Drive: start command reverse
IO_Drive.Telegram.Q._400B_1_AC_Drv_Ctrl_Word.1 := IO_Drive.Bw;
//Plc->Drive: reset fault command
IO_Drive.Telegram.Q._400B_1_AC_Drv_Ctrl_Word.2 := IO_Cycle.I.PbReset;
if IO_Cycle.I.PbReset then
IO_Drive.Alarm:=0;
end_if;
//Plc->Drive: activate network control
IO_Drive.Telegram.Q._400B_1_AC_Drv_Ctrl_Word.5 := IO_Drive.Fw or IO_Drive.Bw;
//Plc->Drive: activate network setpoint
IO_Drive.Telegram.Q._400B_1_AC_Drv_Ctrl_Word.6 := not IO_Drive.ExternalSpeed and (IO_Drive.Fw or IO_Drive.Bw);
//Plc->Drive: speed command value (converting Hz to RPM for the drive)
IO_Drive.VToInv := IO_Drive.VToDrive_Hz * 30; // Convert Hz to RPM (assuming 120Hz = 2436 RPM)
IO_Drive.Telegram.Q._400B_4_Net_Spd_Stpnt_RPM := IO_Drive.VToInv;
//Drive->Plc: drive fault
if not IO_Drive.Alarm then
IO_Drive.Alarm := IO_Drive.Telegram.I._400C_1_AC_Drv_Stat_Word.0 OR IO_Drive.Telegram.I.ConnectionFaulted;
end_if;
//Drive->Plc: drive running
IO_Drive.Running := not IO_Drive.Telegram.I.ConnectionFaulted and (IO_Drive.Telegram.I._400C_1_AC_Drv_Stat_Word.2 OR IO_Drive.Telegram.I._400C_1_AC_Drv_Stat_Word.3);
//Drive->Plc: actual speed (converting RPM from drive to Hz)
IO_Drive.VFromInv := IO_Drive.Telegram.I._400C_4_Actual_Speed_RPM / 30; // Convert RPM to Hz