Remove the face plate.
Remove the screws (5 × M4) from the face plate.
Screw (× 5)
TROUBLESHOOTING B-65165E/02
- 186 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the right side plate.
Screw (7 × M4)
Remove the screws (7 × M4) from the right side plate.
Heat sink
Right side plate
Remove the control printed circuit board.
Hook Heat sink
Bottom plate
PCB supportPCB support
Insert the tip of a screwdriver into the opening on the bottom plate, and while spreading the hook of the PCB support, pull the printed circuit board off the flange surface toward you.
Control printed circuit board
Wiring board
Control printed circuit board
B-65165E/02 TROUBLESHOOTING
- 187 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the LED board for the recharge indicator.
LED board for the recharge indicator
Screw (× 2)
Remove the screws (2 × M4) from the LED board, and remove the board.
Heat sink
Remove the top plate.
Heat sink
Top plate
Screw (2 × M5)
Screw (5 × M4)
<1> Remove the screws (2 × M5) from the DC link jumper.
<2> Remove the screws (5 × M4) from the top plate.
<3> Remove the top plate. (The top plate comes off together with the terminal block TB1.)
Remove the driver printed circuit board.
Carefully insert the tip of a screwdriver and pull out the cable. (Be careful not to force the screwdriver into the connector; otherwise, the claw may break.)
<1> From the two connectors, detach the cables of the current sensor.
<2> Remove the screws (3 × M4) from the driver printed circuit board.
<3> Pull up the driver printed circuit board to remove it.
Connector × 2
Screw × 3Driver printed circuit board
TROUBLESHOOTING B-65165E/02
- 188 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the left side and bottom plates.
<1> Locate the jumpers that connect the terminal block TB2 and the wiring board. Remove the screws (3 × M6) holding the jumpers to the wiring board.
<2> Remove the screws (2 × M5) that connect the capacitor and jumpers.
<3> Remove the screws (6 × M4) from the left side and bottom plates.
<4> Remove the left side and bottom plates. (These plates come off together with the electrolytic capacitor and terminal block TB2.)
 HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the power printed circuit board. <1> Remove the screws that connect the IGBT
and wiring board (9 × M6, 12 × M4). <2> Remove the screws of the thermostat TH1
(2 × M4). <3> Remove the screws that connect the wiring
board and heat sink (2 × M4, 1 × M5). <4> Remove the wiring board.
TH1
FG
Wiring board
Remove the IGBT.
IGBT
TROUBLESHOOTING B-65165E/02
- 190 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.1.5 300-mm Wide Module (with the Connector Module)
Make sure that the recharge-under-way LED (red) is off. View the recharge-under-way LED (red) from the upper part of the DC link cover.
Cover
LED
Remove the DC link cover and motor power line cover.
DC link cover
Motor power line cover
Remove the self-tapping screws (8 × M4) from the DC link cover and motor power line cover.
Remove the face plate.
Remove the screws (5 × M4) from the face plate.
Screw (× 5)
B-65165E/02 TROUBLESHOOTING
- 191 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the right side plate.
Screw (7 × M4)
Remove the screws (7 × M4) from the right side plate.Heat sinkPlate
Remove the connector module and plate.
Connector module
Control printed circuit board
<1> Remove the screws (3 × M3) from the connector module.
<2> Pull the connector module out of the control printed circuit board.
<3> Remove the screws (4 × M4) from the plate, and remove the plate.
 HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the control printed circuit board.
Hook Heat sink
Bottom plate
PCB supportPCB support
Insert the tip of a screwdriver into the opening on the bottom plate, and while spreading the hook of the PCB support, pull the printed circuit board off the flange surface toward you.
Control printed circuit board
Wiring board
Control printed circuit board
Remove the LED board for the recharge indicator.
LED board for the recharge indicator
Screw (x 2)
Remove the screws (2 × M4) from the LED board, and remove the board.
Heat sink
B-65165E/02 TROUBLESHOOTING
- 193 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the top plate.
Heat sink
Top plate
Screw (2 × M5)
Screw (5 × M4)
<1> Remove the screws (2 × M5) from the DC link jumper.
<2> Remove the screws (5 × M4) from the top plate.
<3> Remove the top plate. (The top plate comes off together with the terminal block TB1.)
Remove the driver printed circuit board.
Carefully insert the tip of a screwdriver and pull out the cable. (Be careful not to force the screwdriver into the connector; otherwise, the claw may break.)
<1> From the two connectors, detach the cables of the current sensor.
<2> Remove the screws (3 × M4) from the driver printed circuit board.
<3> Pull up the driver printed circuit board to remove it.
Connector × 2
Screw × 3Driver printed circuit board
TROUBLESHOOTING B-65165E/02
- 194 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the left side and bottom plates.
<1> Locate the jumpers that connect the terminal block TB2 and the wiring board. Remove the screws (3 × M6) holding the jumpers to the wiring board.
<2> Remove the screws (2 × M5) that connect the capacitor and jumpers.
<3> Remove the screws (6 × M4) from the left and bottom plates.
<4> Remove the left and bottom plates. (These plates come off together with the electrolytic capacitor and terminal block TB2.)
 HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
Remove the power printed circuit board.
<1> Remove the screws that connect the IGBT and wiring board (9 × M6, 12 × M4).
<2> Remove the screws of the thermostat TH1 (2 × M4).
<3> Remove the screws that connect the wiring board and heat sink (2 × M4, 1 × M5).
<4> Remove the wiring board.
TH1
FG
Wiring board
Remove the IGBT.
IGBT
TROUBLESHOOTING B-65165E/02
- 196 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.2 REPLACING FUSES
4.2.1 Power Supply Module
(1) Replacing fuses on the control printed circuit board a) F1 for 200 V for the control power b) F2 for 200 V for CX1B external cooling fan
For A16B-2202-0423 to 0424 only.
(2) Replacing a fuse on the control printed circuit board a) F1 for 200 V for the control power
F2 (FU2)
Fuse Specification drawing No. Remarks
F1 (FU1) A60L-0001-0359 250V F5.0A DAITO HM50
F2 (FU2) A60L-0001-0175#2.0A 250V F2.0A DAITO HM20
Control printed circuit board (A16B-2202-0420 to 0424) (A16B-2203-0220)
F1 (FU1)
Fuse Specification drawing No. Remarks
F1 A60L-0001-0245#GP75 250V F7.5A DAITO GP75
Control printed circuit board
(A16B-2202-0080)
F1
B-65165E/02 TROUBLESHOOTING
- 197 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
(3) Replacing a fuse on the power printed circuit board a) F1 for the external cooling fan
(4) Replacing a fuse on the control printed circuit board a) F1 for 200 V for the control power
Fuse Specification drawing No. Remarks
F1 A60L-0001-0175#0.5A 250V F0.5A DAITO HM05
Power printed circuit board
(A20B-1005-0590 to 0592)
F1
Fuse Specification drawing No. Remarks
F1 A60L-0001-0175#5.0A 250V F5.0A DAITO HM50
Control printed circuit board
(A16B-2201-0890)
F1
TROUBLESHOOTING B-65165E/02
- 198 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
(5) Replacing a fuse on the power printed circuit board a) F1 for 200 V for the external cooling fan
(6) Replacing fuses on the AC reactor a) F1 to F3 for main circuit protection
Fuse Specification drawing No. Remarks
F1 A60L-0001-0359 250V F5.0A DAITO HM50
Control printed circuit board
(A16B-2300-0100)
F1
Fuse Specification drawing No. Remarks
F1
F2
F3
A60L-0001-0362#100U CR6L-100/UL
AC reactor (A81L-0001-0144)
F2
F3
F1
400T
L11
L31
400R
L21 400S
B-65165E/02 TROUBLESHOOTING
- 199 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.2.2 Servo Amplifier Module
(1) Replacing a fuse on the unit (control printed circuit board) a) F1 for the 24-V control power
F1
Fuse Specification drawing No. Remarks
F1 A60L-0001-0290#LM32C 48V F3.2A DAITO LM32C
TROUBLESHOOTING B-65165E/02
- 200 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.2.3 Spindle Amplifier Module
(1) Replacing a fuse on the control printed circuit board a) F1 for the 24-V control power
(2) Replacing a fuse on the power printed circuit board a) F2 for 200 V for the external cooling fan
F1
Fuse Specification drawing No. Remarks
F2 A60L-0001-0290#LM32C 48V F3.2A DAITO LM32C
Control printed circuit board
(A16B-2203-050x)
F2
Fuse Specification drawing No. Remarks
F2 A60L-0001-0175#0.5A 250V F5.0A DAITO HM50
Wiring board
(A20B-1005-057x,
A20B-1006-048x, -055x, -0890)
B-65165E/02 TROUBLESHOOTING
- 201 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
(3) Replacing a fuse on the unit (control printed circuit board) a) F2 for the 24-V control power
F2
Fuse Specification drawing No. Remarks
F2 A60L-0001-0290#LM50C 50V F5.0A DAITO LM50C
TROUBLESHOOTING B-65165E/02
- 202 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.2.4 Power-Failure Backup Module
(1) Replacing fuses on the unit (control printed circuit board) a) FU1 for 200 V for the control power b) FU2 for 200 V for the control power
Fuses a) and b) above are provided for A16B-2203-0020 only.
c) FU3 for the 24-V control power
Fuse Specification drawing No. Remarks
FU1
FU2 A60L-0001-0396#10A 216-010 (ECX)
FU3 A60L-0001-0290#LM32C 48V F3.2A DAITO LM32
Control printed circuit board
(A16B-2002-0790, A16B-2003-0020)
FU3
FU2
FU1
B-65165E/02 TROUBLESHOOTING
- 203 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
4.3 OTHER COMPONENTS
4.3.1 Replacing the SPM Program ROM and Spindle Sensor Module
(1) SPM type 1 and type 4
ROM (Note that the notch is upward.)
Name Specification drawing No. Remarks
ROM A06B-6102-H520 9D20 series
Spindle sensor module A20B-2902-0620 For type 4 only
D4
AM1 Spindle sensor module: For A16B-2203-0503-0505 only
Control printed circuit board (A16B-2203-0500-0505)
(2) SPM types 1 to 4 The drawing number of the spindle sensor module differs depending on the SPM type as follows: SPM type 2: A20B-2901-0851
Mounting location = MD4, MD5, MD6 SPM type 4: A20B-2902-0620 (old specification A20B-2902-
0610 also allowed) Mounting location = MD4, MD6
NOTE For SPM type 4, the revision of the control printed circuit board must be the following: A16B-2202-0433, 0434: 16E or later A16B-2202-0435: 13C or later
TROUBLESHOOTING B-65165E/02
- 204 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
ROM
Name Specification drawing No. Remarks
ROM A06B-6072-H500 9D0A series
Spindle sensor module See the above table. MD4, 5, 6
MG11
Spindle sensor module × 3
Control printed circuit board
(A16B-2202-0430 to 0435, A16B-2203-0330 to 0332)
MD4
MD5
MD6
(3) SPM type 3
ROM
Name Specification drawing No. Remarks
ROM A06B-6072-H500 9D0A series
Spindle sensor module A20B-2901-0851
MG11
MD4
Spindle sensor module
Control printed circuit board (A06B-2202-0440)
(4) SPMC-2.2 to 11
ROM
Name Specification drawing No. Remarks
ROM A06B-6082-H512 9D12 series
ROM A06B-6082-H511 9D11 series
ROM A06B-6082-H510 9D10 series
MC8
Control printed circuit board (A20B-2001-0780, 0781)
B-65165E/02 TROUBLESHOOTING
- 205 -
4. HOW TO REPLACE THE FUSES AND PRINTED CIRCUIT BOARDS
(5) SPMC-15 to 26
ROM
Name Specification drawing No. Remarks
ROM A06B-6082-H512 9D12 series
ROM A06B-6082-H511 9D11 series
ROM A06B-6082-H511 9D10 series
D8
Control printed circuit board (A06B-2202-0840)
(6) SPM type 1 of old specification
ROM
Name Specification drawing No. Remarks
ROM A06B-6072-H500 9D0A series
Spindle sensor module A20B-2901-0851MF4
MD3 Spindle sensor module × 1
Control printed circuit board (A06B-2202-0070)
(7) SPM types 2 and 3 of old specification
ROM
Name Specification drawing No. Remarks
ROM A06B-6072-H500 9D0A series
Spindle sensor module A20B-2901-0851MF4
MD3MD6 Spindle sensor module × 4
Control printed circuit board (A06B-2202-0160)
III. MOTOR MAINTENANCE
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 209 -
1 AC SERVO MOTOR MAINTENANCE Generally, AC servo motors have no parts that wear off or that must be replaced periodically, unlike DC servo motors, which have brushes that must be replaced periodically. However, you should perform periodic maintenance for servo motors so as to keep their initial performance as long as possible and to prevent breakdowns. AC servo motors have precision detectors. Their incorrect use or damage caused during transportation or assembling can result in breakdowns or accidents. We recommend that you inspect the servo motors periodically according to the descriptions given below.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 210 -
1.1 RECEIVING AND KEEPING AC SERVO MOTORS When you receive an AC servo motor, make sure that:
• The motor is exactly the one you ordered, in terms of model, shaft, and detector specifications.
• No damage has been caused on the motor.
Because FANUC inspects servo motors strictly before shipment, you do not, in principle, have to inspect them when you receive them. However, you should check the specifications (wiring, current, and voltage) of the motor and detector carefully, as required. The servo motors should be kept indoors as a rule. The storage temperature range is -20 to +60°C. Do not place or install AC servo motors in the place where:
• It is extremely humid and dew is prone to form, • There is a steep change in temperature, • There is constant vibration, which may cause damage to the shaft
bearings, or
• There is lots of dust and trash.
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 211 -
1.2 DAILY INSPECTION OF AC SERVO MOTORS Before starting operation, or periodically (once a week or month), you should inspect the AC servo motors in terms of the following:
(1) Vibration and noise Check the motor for abnormal vibration (by the hand) and noise (by the ear) when the motor is:
• Not rotating • Rotating at low speed • Accelerating or decelerating If you find anything unusual, contact your FANUC service staff.
(2) Damage on the outside Check the motor cover (red plastic) for crevices and the motor surface (black coating) for scratches and cracks. If you find a crevice in the motor cover, you should replace it as quickly as possible. For how to replace, see the description about the pulse coder in Section 1.4. If you are not sure about replacement, contact you FANUC service staff. If there is a scratch or crack on the motor surface, the user should repair it by himself as required. If coating has come off, dry the portion of interest (or the entire surface) and coat it with paint for machines such as urethane paint.
Replace a motor cover with a crevice or crack as quickly as possible.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 212 -
(3) Stains and smudges Check the motor surface and bolt holes for oil or cutting fluid. Wipe off oil and cutting fluid on the motor surface periodically. Oil or cutting fluid can damage the coating by chemical reaction, possibly leading to a failure. Also check how such a liquid leaks onto the motor, and repair if needed.
Wipe off oil and cutting fluid on the motor surface periodically.
(4) Overheating Check to see if the motor is too hot during normal operation. Attach a thermolabel on the motor surface and check it visually to see if the motor becomes too hot during normal operation. Note) Temperature on the motor surface can exceed 80°C
under some conditions. Never touch it by the hand.
Attach a thermolabel and check it visually.
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 213 -
1.3 PERIODIC INSPECTION OF AC SERVO MOTORS We recommend that you inspect the AC servo motors for the following items at least once a year.
(1) Observation of torque command (TCMD) and speed command (VCMD) waveforms Observe normal voltage waveforms with an oscilloscope, and keep notes of them. During periodic inspection, check the current waveforms with the records. The waveforms vary according to the operating conditions such as load and cutting speed. Note that you should make comparisons under the same condition (for example, during fast traverse to the reference position or low-speed cutting). See descriptions on the check boards in I-4.2.5 for detailed inspection procedures.
(2) Diagnosis by waveforms Check the measured waveforms to see whether:
<1> The peak current is within the limit to the current in the amplifier. The limit to the amplifier current is listed below.
Limit to the amplifier current
Measured waveform
0
⇒ The motor used to accelerate/decelerate with the amplifier current within the limit (the acceleration/deceleration torque used to be sufficient), but something is wrong now. If this is the case, the probable causes are: • The load conditions in the machine have changed because
of changed friction or reduced machine efficiency after long period of use.
• Motor failure
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 214 -
Reduced efficiency
Increased friction
[Table 1]
Models Current value
α1/3000, α2/2000, α2/3000 12Ap αM2/3000, αM2.5/3000, αC3/2000, αC6/2000, αC12/2000, α3/3000HV, α6/3000HV
20Ap
α3/3000, α6/2000, α12/2000, α22/1500, αC22/1500, α12/3000HV, αM6/3000HV, αM9/3000HV
40Ap
α22/3000HV, α30/3000HV, αM22/3000HV, αM30/3000HV 60Ap α6/3000, α12/3000, α22/2000, α30/1200, αM6/3000, αM9/3000, αL6/3000, αL9/3000
80Ap
α22/3000, α30/2000, α30/3000, α40/2000, α40/2000 (with fan), αM22/3000, αM30/3000, αM40/3000, αL25/3000, αL50/2000
130Ap
α65/2000 240Ap αM40/3000 (with fan), α100/2000, α150/2000 360Ap α300/2000, α400/2000 360Ap × 2
<2> The waveform has ripple during constant-speed feeding.
Ripple
Measured waveform
0
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 215 -
<3> The current waveform has ripple or jumps when the motor is not rotating.
Measured waveform 0
Ripple
If you find anything unusual in relation to the above items, contact your FANUC service staff.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 216 -
1.4 REPLACING THE PULSE CODER This section explains how to replace the pulse coder and motor cover, assuming that the pulse coder has broken down and is in need of immediate replacement. When replacing the pulse coder and motor cover, be careful not to give a shock to the pulse coder or motor, because they are precision devices prone to a breakdown. Also keep them from dust and cutting chips.
(1) Models α1, α2, αM2, αM2.5 <1> Remove the four M4 hexagonal socket head bolts that fasten
the pulse coder. Do not loosen the M3 bolts near each M4 bolt. (Removing the M3 bolts will impair airtightness.)
Pulse coder cver fastening bolts M3
PULSECODER COVER FASTENING SCREWS M3
Pulse coder fastening bolts M4 × 16
PULSECODER FASTENING SCREWS M4 × 16
<2> Remove the pulse coder and Oldham’s coupling.
Pulse coder fastening bolts
Pulse coder
M4 × 16(4)
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 217 -
<3> Set a new pulse coder and a new Oldham’s coupling in the motor. Place the Oldham’s coupling with the correct orientation, and engage the teeth.
Mate coupling of the Oldham’s coupling
Oldham’s coupling
<4> Fasten the pulse coder with the four M4 hexagonal socket head bolts. When tightening the bolts, be careful not to catch the O-ring mounted on the pulse coder.
O-ring
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 218 -
(2) Models α3 to α40, αM6 to αM40, αL, αC, α3HV to α30HV, αM6HV to αM30HV <1> Loosen the bolts that retain the red motor cover to remove
the cover. Check whether the pulse coder is of the cable separation type (the pulse coder cable can be detached from the red cover of the pulse coder) or of the cable non- separation type (the cable cannot be detached from the cover). For the replacement of a cable separation type pulse coder, see Item <2>-1. For the replacement of a cable non- separation type pulse coder, see Item <2>-2.
Motor coverMotor
Packing
Cable non-separation type pulse coder
Connector
Cable separation type pulse coder
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 219 -
<2>-1 (Cable separation type) (a) Remove the cable of the pulse coder by using a screwdriver.
Cover
Cover
<1> <2>
<3>
(b) Remove the four M4 hexagonal socket head bolts that retain the pulse coder. Do not loosen the M3 bolts that retain the pulse coder cover.
Do not loosen these bolts.
Oldham’s coupling
M4 × 10
(c) Remove the pulse coder and Oldham’s coupling. (d) Set a new pulse coder and new Oldham’s coupling in the
motor. Although the mounting orientation is not specified in particular, it is recommended that the pulse coder be set with the same orientation as before the replacement. This is because of the convenience of cabling. Place the Oldham’s coupling with the correct orientation, and engage the teeth.
(e) Fasten the pulse coder with the four M4 hexagonal socket head bolts.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 220 -
(f) Replace the packing on the motor cover mounting surface. Reusing old packing cannot provide sufficient sealing performance. Whenever taking off the motor cover, be sure to replace the packing.
(g) Connect the cable of the pulse coder. (h) Install the motor cover. Be careful not to catch the lead wires
of the pulse coder. After installing the motor cover, fasten the cover using the M4 hexagonal socket head bolts.
<2>-2 (Cable non-separation type) (a) Detach the cannon connector of the pulse coder from the red
motor cover. (a)-1 Remove the M3 screw that retains the connector. (a)-2 Shift the rubber packing, and remove the C-ring that
retains the insulator on the rear side (connection side) of the connector to separate the connector housing from the terminal section. Replace the rubber packing with a new one.
(a)-3 Remove the connector terminal section from the motor cover.
(a)-4 Set the housing in the removed pulse coder (the pulse coder to be replaced with a new one) in place, and hold the housing with the C-ring.
(b) Cut the lead wires of the thermal switch. The wires should be cut at the root of the crimp terminals where possible.
 Do not loosen the M3 bolts that retain the pulse coder cover.
Do not loosen these bolts.
Oldham’s coupling
M4 × 10
(d) Remove the pulse coder and Oldham’s coupling.
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 221 -
(e) Set a new pulse coder and new Oldham’s coupling in the motor. Although the mounting orientation is not specified in particular, it is recommended that the pulse coder be set with the same orientation as before the replacement. This is because of the convenience of cabling. Place the Oldham’s coupling with the correct orientation, and engage the teeth.
(f) Fasten the pulse coder with the four M4 hexagonal socket head bolts.
(g) Replace the packing on the motor cover mounting surface. Reusing old packing cannot provide sufficient sealing performance. Whenever taking off the motor cover, be sure to replace the packing.
(h) Install the connector in the cover in the reverse order of step (a). Keying is provided for the connector insulator (the insulating material around the terminals). So, perform keying (phase) alignment when installing the connector.
(i) Connect the lead wires of the thermal switch. Peel off about 1 cm of the jacket from the cut end of each motor lead wire, and tie the wire to the terminal of the pulse coder. Use of a crimp terminal is recommended for connection. (In case of an emergency, insulate both connection portions with insulating tape.)
(j) Install the motor cover. Be careful not to catch the lead wires of the pulse coder. After installing the motor cover, bolt the cover.
Cannon connector
Thermal wire
Cut the wire at the root of the crimp terminal.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 222 -
(3) Models α65 to α150 <1> Loosen the bolts that retain the red motor cover to remove
the cover. Check whether the pulse coder is of the cable separation type (the pulse coder cable can be detached from the red cover of the pulse coder) or of the cable non- separation type (the cable cannot be detached from the cover). For the replacement of a cable separation type pulse coder, see Item <2>-1. For the replacement of a cable non- separation type pulse coder, see Item <2>-2.
Cable non-separation type pulse coder
Connector
Cable separation type pulse coder
<2>-1 (Cable separation type) (a) Remove the cable of the pulse coder by using a screwdriver.
Cover
Cover
<1> <2>
<3>
(b) Remove the four M4 hexagonal socket head bolts that retain the pulse coder. Do not loosen the M3 bolts that retain the pulse coder cover.
(c) Remove the pulse coder and Oldham’s coupling.
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 223 -
(d) Set a new pulse coder and new Oldham’s coupling in the motor. Although the mounting orientation is not specified in particular, it is recommended that the pulse coder be set with the same orientation as before the replacement. This is because of the convenience of cabling. Place the Oldham’s coupling with the correct orientation, and engage the teeth.
(e) Fasten the pulse coder with the four M4 hexagonal socket head bolts.
(f) Replace the packing on the motor cover mounting surface. Reusing old packing cannot provide sufficient sealing performance. Whenever taking off the motor cover, be sure to replace the packing.
(g) Connect the cable of the pulse coder. (h) Install the motor cover. Be careful not to catch the lead wires
of the pulse coder. After installing the motor cover, bolt the cover.
<2>-2 (Cable non-separation type) (a) Remove the cannon connector of the pulse coder from the
motor terminal box. (a)-1 Remove the M3 screw that retains the connector. (a)-2 Shift the rubber packing, and remove the C-ring that
retains the insulator on the rear side (connection side) of the connector to separate the connector housing from the terminal section. Replace the rubber packing with a new one.
(a)-3 Pull out the connector terminal section from the terminal box toward the pulse coder.
(a)-4 Set the housing in the removed pulse coder (the pulse coder to be replaced with a new one) in place, and hold the housing with the C-ring.
(b) Cut the lead wires of the thermal switch. The wires should be cut at the root of the crimp terminals where possible.
 Do not loosen the M3 bolts that retain the pulse coder cover.
(d) Remove the pulse coder and Oldham’s coupling. (e) Set a new pulse coder and new Oldham’s coupling in the
motor. Although the mounting orientation is not specified in particular, it is recommended that the pulse coder be set with the same orientation as before the replacement. This is because of the convenience of cabling. Place the Oldham’s coupling with the correct orientation, and engage the teeth.
(f) Fasten the pulse coder with the four M4 hexagonal socket head bolts.
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 224 -
(g) Replace the packing on the motor cover mounting surface. Reusing old packing cannot provide sufficient sealing performance. Whenever taking off the motor cover, be sure to replace the packing.
(h) Install the connector in the cover in the reverse order of step (a). Keying is provided for the connector insulator (the insulating material around the terminals). So, perform keying (phase) alignment when installing the connector.
(i) Connect the lead wires of the thermal switch. Peel off about 1 cm of the jacket from the cut end of each motor lead wire, and tie the wire to the terminal of the pulse coder. Use of a crimp terminal is recommended for connection. (In case of an emergency, insulate both connection portions with insulating tape.)
(j) Install the motor cover. Be careful to keep the lead wires of the pulse coder clear of the motor cover. After installing the motor cover, bolt the cover.
1. AC SERVO MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 225 -
1.5 SPECIFICATION NUMBERS OF REPLACEMENT PARTS The following lists the ordering specification numbers for maintenance:
(1) Ordering specifications of pulse coders <1> Ordering specifications of pulse coders with no motor cover
� Models α1 to α2, αM2 to αM2.5 A290-0371-T575 : αA64 (with Oldham’s coupling) A290-0371-T577 : αI64 (with Oldham’s coupling) A290-0371-T588 : αA1000 (with Oldham’s coupling)
� Models α3 to α400, αM6 to αM40, αL, αC, α3HV to α30HV, and αM6HV to αM30HV • Cable separation type
A860-0360-V501: αA64 A860-0365-V501: αI64 A860-0370-V502: αA1000 A860-0360-V906: Cable assembly (common to αA64,
αI64, and αA1000) A290-0501-V535: Oldham’s coupling (to be replaced
together with the pulse coder at a time)
• Cable non-separation type (reference) A860-0360-T201 : αA64 A860-0365-T101 : αI64 A860-0370-T201 : αA1000 A290-0501-V535: Oldham’s coupling (to be replaced
together with the pulse coder at a time)
<2> Ordering specifications of pulse coders with a motor cover
� Models α3 to α6, αM6 to αM9, αL6 to αL9, αC3 to αC6, α3HV to α6HV, and αM6HV to αM9HV A290-0121-T575 : αA64 A290-0121-T577 : αI64 A290-0121-T588 : αA1000
� Models α12 to α40, αM22 to αM40, αL25 to αL50, αC12 to αC22, α12HV to α30HV, and αM22HV to αM30HV A290-0141-T575 : αA64 A290-0141-T577 : αI64 A290-0141-T588 : αA1000
1. AC SERVO MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 226 -
(2) Ordering specifications of motor covers A290-0121-X035 : α3 to α6, αM6 to αM9, αL6 to αL9, αC3 to
αC6, α3HV to α6HV, αM6HV to αM9HV A290-0141-X035 : α12 to α40, αM22 to αM40, αL25 to αL50,
αC12 to αC22, α12HV to α30HV, αM22HV to αM30HV
(3) Oldham’s coupling A290-0501-V535
(4) Packing A290-0511-X043 : α3 to α6, αM6 to αM9, αL6 to αL9, αC3 to
αC6, α3HV to α6HV, αM6HV to αM9HV A290-0501-X043 : α12 to α40, αM22 to αM40, αL25 to αL50,
αC12 to αC22, α12HV to α30HV, αM22HV to αM30HV
A290-0301-X008 : α65 to α150
(5) Rubber packing and nylon band A290-0651-X034 : Rubber packing A6-NYB-T1 : Nylon band
2. SPINDLE MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 227 -
2 SPINDLE MOTOR MAINTENANCE
2. SPINDLE MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 228 -
2.1 PREVENTIVE MAINTENANCE To maintain the original performance and reliability of the spindle motor for a long time, it is necessary to inspect them as described below.
(1) Visual inspection
WARNING Be careful not to be struck by electric shocks or caught in gears or other mechanisms during inspection. When taking corrective actions, keep the entire machine switched off.
Inspection item Symptom Action Noise or abnormal vibration
There is unusual noise or vibration. The vibration acceleration of the motor exceeds 0.5 G at the maximum speed.
Check the following and take necessary actions: • Base and installation • Centering accuracy of directly coupled section • Abnormal sound from motor shaft bearings (See "Motor shaft bearing"
below.) • Vibration of or noise from the reducer or belts • Amplifier failure • Fan motor failure (See "Fan motor" below.)
Cooling air path The cooling air path is clogged with dust.
Clean the stator vents and fan motor on a regular basis.
Motor surface Cutting fluid on the motor surface.
• Clean the motor surface. • If the motor is splashed excessively with coolant, place a cover or take a
similar action. If the fan motor can be rotated by the hand,
Replace the fan motor.Not rotating.
If the fan motor cannot be rotated by the hand,
Remove foreign materials, if any. Adjust its mounting position by loosening the bolts and tightening them again. If unusual noise still remains, replace the fan motor.
Fan motor
Unusual sound Remove foreign materials, if any. Adjust its mounting position by loosening the bolts and tightening them again. If unusual noise still remains, replace the fan motor.
Motor shaft bearing
Unusual sound from the motor shaft bearing
Replace the shaft bearing, and check the shaft for centering accuracy. Also check on the radial load. Before replacing the shaft bearing, contact your FANUC service staff.
Cutting fluid in the terminal box
Check the terminal box lid and conduit packing. If there is lot of fluid on the terminal box surface, protect the terminal box by installing a shelter over it.
Internal condition of the terminal box
Loosen screw in the terminal block
• Tighten the screw. • Check whether there is abnormal vibration during motor rotation.
2. SPINDLE MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 229 -
(2) Checking the insulation between the winding and frame Use a megohmmeter to measure the insulation resistance on 500 VDC. From the measurement result, determine whether the insulation is acceptable or not according to the following criteria: • More than 100 MΩ: Acceptable • 10 to 100 MΩ: Deterioration has started. Although there is no
performance problem, periodic check is required. • 1 to 10 MΩ: Deterioration is in an advanced state. Special
care must be taken. Periodic check is required. • Less than 1 MΩ: Unacceptable. Replace the motor.
CAUTION 1 Before measuring insulation resistance, disconnect
the connection to the spindle amplifier module. If insulation resistance is measured with the spindle amplifier module connected, the spindle amplifier module may be damaged.
2 During the measurement of insulation resistance, applying voltage to the motor for a long time may further deteriorate the insulation of the motor. Therefore, the measurement of insulation resistance should be performed in a minimum amount of time where possible.
2. SPINDLE MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 230 -
(3) Check items for the coolant through spindle motor αT series and αL series <1> Check whether coolant is always leaking out from the drains
or notch of the rotary joint support housing. (See Fig. 2.) <2> Check whether the vibration acceleration of the motor
turning at the maximum speed exceeds 0.5 G. (See Fig. 3.) <3> Check whether coolant leaks out from the coolant joint of the
coupling. (See Fig. 4.) <4> Check for backlash in the coupling.
Rotary joint support housingCoupling
Fig. 1 Example of using the coolant through spindle motor
2. SPINDLE MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 231 -
Coolant joint
φ d
φ
Convex type Concave type
Fig. 4 Example of a coolant joint
Vibrometer
Pickup
Motor body
Fig. 3 Measuring vibration acceleration
Drain
Spare drainNotch
Rotary joint support housing
Fig. 2 Rotary joint support housing
2. SPINDLE MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 232 -
2.2 MAINTENANCE PARTS (1) Parts of the terminal box (α, αP, αC, and αHV series)
Terminal box assembly Model When the motor drawing No. ends
with B�0� or B�9� (Note 1)
When the motor drawing No.
ends with B�3� (Note 1)
Lid of terminal box
α1, α1.5, αC1, αC1.5
A290-0850-T400 A290-0853-V410
α2, α3, αC2, αC3
A290-0853-T400 A290-0853-T401 A290-0853-V410
α6 to α15 αP8 to αP22 α6HV to α15HV αC6 to αC15
A290-0854-T400 A290-0854-T401 A290-0854-V410
α18, α22 α18HV, α22HV αC18, αC22
A290-0731-T420 A290-0731-T421 A290-0731-V410
α30, α40 α30HV, α40HV
A290-0860-T400 A290-0860-T401 A290-1040-X402
αP30 to αP50 A290-0731-T455 A290-0731-T456 A290-0731-V410 αP60 A290-0833-T400 A290-0833-T401 A290-1040-X402 α60HV A290-0860-T403 A290-0860-T404 A290-1040-X402
NOTE 1 For example, drawing number A06B-0856-B100
ends with B�0�, and A06B-0856-B130 ends with B�3�.
2 The above table may not apply to motors of which motor drawing number ends with B9��. Contact your FANUC service representative.
3 The above table may not apply to maintenance parts of high-speed models.
2. SPINDLE MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 233 -
(2) Terminal box drawing numbers (αT series)
Model name Motor drawing No.(Note 4) Terminal box assembly Lid of terminal box αT1.5/15000 A06B-0871-B927 αT2/15000 A06B-0869-B927 αT3/12000 A06B-0853-B927
A290-0853-T408 A290-0853-V410
αT6/12000 A06B-0854-B927 αT8/12000 A06B-0855-B927 αT15/10000 A06B-0857-B927, B928
A290-0854-T408 A290-0854-V410
αT22/10000 A06B-0859-B927, B928 A290-0731-T457 A290-0731-V410
NOTE 4 The above table may not apply to the motors other
than the drawing numbers listed in the above table. Contact your FANUC service representative.
2. SPINDLE MOTOR MAINTENANCE TROUBLESHOOTING B-65165E/02
- 234 -
(3) Fan motor parts (α, αP, αC, and αHV series)
Model Fan cover Fan motor Air flow direction A290-0850-T500(Note 5) A90L-0001-0491/R Backwardα1, α1.5
αC1, αC1.5 A290-0850-T501(Note 5) A90L-0001-0491/F Forward A90L-0001-0442/R Backwardα2, α3
αC2, αC3 A290-0853-X501
A90L-0001-0442/F Forward A90L-0001-0443/R Backwardα6, α8, αP8
αC6, αC8 A290-0854-X501
A90L-0001-0443/F Forward
A90L-0001-0444/RS Backward α12, α15, αP12, αP15 αC12, αC15, αP18, αP22
A290-0856-X501 A90L-0001-0444/FS Forward
A90L-0001-0444/R Backwardα18, α22 αC18, αC22
A290-0856-X501 A90L-0001-0444/F Forward
A290-0731-T510(Note 5) A90L-0001-0318/R Backwardα30, α40 αP30, αP40 A290-0731-T511(Note 5) A90L-0001-0318/F Forward
A290-0832-T500(Note 5) A90L-0001-0319/R Backward αP50, αP60
A290-0832-T501(Note 5) A90L-0001-0319/F Forward A90L-0001-0457/R Backward
α6HV, α8HV A290-0854-X501 A90L-0001-0457/F Forward A90L-0001-0458/RS Backward
α12HV, α15HV A290-0856-X501 A90L-0001-0458/FS Forward A90L-0001-0458/R Backward
α18HV, α22HV A290-0856-X501 A90L-0001-0458/F Forward
A290-0780-T510(Note 4) A90L-0001-0399/R Backward α30HV, α40HV
A290-0780-T511(Note 4) A90L-0001-0399/F Forward A290-0883-T500(Note 4) A90L-0001-0400/R Backward
α60HV A290-0883-T501(Note 4) A90L-0001-0400/F Forward
NOTE 5 These drawing numbers include fan motors. 6 The above table may not apply to motors of which
motor drawing number ends with B9��. Contact your FANUC service representative.
7 The above table may not apply to maintenance parts of high-speed models.
2. SPINDLE MOTOR B-65165E/02 MOTOR MAINTENANCE MAINTENANCE
- 235 -
(4) Fan motor parts (αT series)
Model name Motor drawing
No.(Note 9) Fan cover Fan motor Fan base
αT1.5/15000 A06B-0871-B927 A290-0850-T504(Note 8) A90L-0001-0491/RL αT2/15000 A06B-0869-B927 αT3/12000 A06B-0853-B927
A290-0853-X501 A90L-0001-0442/RL A290-0853-X507
αT6/12000 A06B-0854-B927 αT8/12000 A06B-0855-B927
A290-0854-X501 A90L-0001-0443/RL A290-0854-X507
αT15/10000 A06B-0857-B927, B928 αT22/10000 A06B-0859-B927, B928
A290-0856-X501 A90L-0001-0444/RL A290-0856-X504
NOTE 8 These drawing numbers include fan motors. 9 The above table may not apply to the motors other
than the drawing numbers listed in the above table. Contact your FANUC service representative.
2.
B-65165E/02 INDEX
�����
INDEX
α (HV) series power supply modules 9
α (HV) series spindle amplifier module (SPM-HV) 30
α Series and α (HV) Series Spindle Amplifier Module 144
α series power supply modules 7
α series spindle amplifier module (SPM) 29
α series spindle amplifier modules 14
αC series spindle amplifier module (SPMC) 30
αC Series Spindle Amplifier Module 171
150 mm Width Module (with the Connector Module) 182
150 mm Width Module (without the Connector Module) 180
200-V input series 10
300-mm Wide Module (with the Connector Module) 190
300-mm Wide Module (without the Connector Module) 185
400-V input series 13
60/90 mm Width Modules 178
[A] A specified speed cannot be obtained. 52
Abnormal Current Alarms (8, 9, A, b, C, d, and E in the LED
display) 128
AC SERVO MOTOR MAINTENANCE 209
Address descriptions and initial values (SPM) 74
Address descriptions and initial values (SPMC) 75
Alarm code 01 116, 120, 145
Alarm code 02 117, 120, 146
Alarm code 03 117, 120, 147
Alarm code 04 118, 121, 147
Alarm code 05 118, 121
Alarm code 06 118, 121
Alarm code 07 119, 122, 148
Alarm code 08 123
Alarm code 09 148
Alarm Code 1 173
Alarm code 11 149
Alarm code 12 150, 171
Alarm code 13 151
Alarm code 15 151
Alarm code 16 121, 151
Alarm code 17 123
Alarm code 18 123
Alarm Code 2 173
Alarm code 2 125
Alarm code 24 152
Alarm code 25 152
Alarm code 26 122, 153
Alarm code 27 155
Alarm code 28 156
Alarm code 29 157
Alarm Code 3 173
Alarm code 30 158
Alarm code 31 158
Alarm code 32 159
Alarm code 33 159
Alarm code 34 159
Alarm code 35 160, 172
Alarm code 36 122, 160
Alarm code 37 161
Alarm Code 39 162
Alarm Code 4 174
Alarm code 4 125
Alarm code 40 163
Alarm code 41 164
Alarm code 42 165
Alarm code 43 165
Alarm code 44 165
Alarm code 46 122, 165
Alarm code 47 166
Alarm code 49 167
INDEX B-65165E/02
�����
Alarm Code 5 174
Alarm code 5 126
Alarm code 50 167
Alarm code 51 167
Alarm code 54 168
Alarm code 55 168
Alarm code 56 169
Alarm code 57 169
Alarm code 58 169
Alarm code 59 170
Alarm code 6 126
Alarm code 7 126
Alarm code 8 127
Alarm code A0 124
Alarm code A1 124
Alarm code A2 124
Alarm codes 19 and 20 152
Alarm codes 52 and 53 168
Alarm codes A, A0 to A4, and other Ax (x for representing an
arbitrary number) 144
ALARM NUMBERS AND BRIEF DESCRIPTIONS 98
Alarms Related to Pulse Coder and Separate Serial Detector
139
An overshoot or hunting occurs. 53
Attaching and Detaching Connectors 92
[B] BATTERY FOR THE ABSOLUTE PULSE CODER 85
[C] CASE DISASSEMBLY 178
Check board connection 68
Check Pin Board 41
Check Terminal On The Printed-circuit Board 34
Check terminal output signals 69
Checking For What Keeps The Mcc From Being Switched On
39
Checking The Feedback Signal Waveform 58
Checking The Power Supply Voltages 35
Checking The STATUS Display 46
Checking The Status Leds 36
Checking The Voltage And Capacity Of The Power 25
CONFIGURATIONS 4, 5
CONFIRMATION OF THE OPERATION 32
Connecting a Battery to Multiple SVMs 88
Connecting A Protective Ground 26
CONNECTING THE POWER 25
Control Power Supply Undervoltage Alarm (2 in the LED
display) 131
Current Conversion Error Alarm 131
Cutting power weakens or acceleration/deceleration slows
down. 54
[D] DAILY INSPECTION OF AC SERVO MOTORS 211
Data numbers 80
DC Link Undervoltage Alarm (5 in the LED display) 131
Diagnosis Screen 135
[E] Example of monitoring data 83
[F] Fan Stopped Alarm (1 in the LED display) 131
Feedback Disconnected Alarm 137
FOR SERIES 0-C 112
FOR SERIES 15 108
FOR SERIES 15i 102
FOR SERIES 16, 18, 20, 21 105
FOR SERIES 16i, 18i, 20i, 21i, AND Power Mate i 99
[H] High-resolution magnetic pulse coder 63
B-81224EN/01 INDEX
���
HOW TO REPLACE THE FUSES AND PRINTED
CIRCUIT BOARDS 175
[I] INITIALIZING SERVO PARAMETERS 31
Installing a Special Lithium Battery in the SVM (Method 1)
86
Invalid Servo Parameter Setting Alarm 138
IPM Alarms (8., 9., A., b., C., d., and E in the LED display;
note these codes are displayed simultaneously with a period.)
130
[M] M sensor 60
MAINTENANCE PARTS 232
Major characteristics 71
MAJOR COMPONENTS 7
MZ and BZ sensors 61
MZ sensor for α 0.5 (A06B-0866-B390) (old specification) 62
[O] Observation method 72
Observing Data Using the Spindle Check Board 71
Other Alarms 142
OTHER COMPONENTS 203
Overheat Alarm 138
Overload Alarm (Soft Thermal, OVC) 136
OVERVIEW 3, 97
Overview 71
[P] PERIODIC INSPECTION OF AC SERVO MOTORS 213
PERIODIC MAINTENANCE OF SERVO AMPLIFIER 84
PERMISSIBLE RADIAL LOAD 236
POWER SUPPLY MODULE 33, 116
Power Supply Module 7, 27, 196
Power Supply Module (PSM, PSM-HV) 116
Power Supply Module (PSMR) 125
Power Supply Module (PSMV) 119
POWER-FAILURE BACKUP MODULE 173
Power-Failure Backup Module 22, 202
PREVENTIVE MAINTENANCE 228
Principles in outputting the internal data of the serial spindle
76
PSM, PSM-HV 34
PSM, PSM-HV, and PSMV-HV 36
PSMR 37
PSMV-HV 35
[R] RECEIVING AND KEEPING AC SERVO MOTORS 210
REPLACING FUSES 196
Replacing the Battery 91
REPLACING THE PULSE CODER 216
Replacing the SPM Program ROM and Spindle Sensor
Module 203
[S] Selecting The Ground Fault Interrupter That Matches The
Leakage Current 26
Servo Adjustment Screen 133
SERVO AMPLIFIER MODULE 40, 128
Servo Amplifier Module 28, 199
Servo Amplifier Modules 10
Servo Check Board 48
SERVO SOFTWARE 133
SETTING THE PRINTED-CIRCUIT BOARD 27
SPECIFICATION NUMBERS OF REPLACEMENT PARTS
225
Specifying data to be monitored 73
SPINDLE AMPLIFIER MODULE 49, 144
Spindle Amplifier Module 29, 200
Spindle Amplifier Modules 14
Spindle Check Board 67
Spindle check board specifications 67
SPINDLE MOTOR MAINTENANCE 227
INDEX B-65165E/02
�����
START-UP PROCEDURE 23
START-UP PROCEDURE (OVERVIEW) 24
STATUS Display 50
Status Error Indication Function 55
[T] The motor does not turn. 52
The PIL LED (power ON indicator) Is Off. 38
The PIL LED (power-on indicator) is off. 51
The STATUS display is blinking with "--." 51
TROUBLESHOOTING AND ACTION 115
Troubleshooting at Startup 51
[U] Using a Battery Case (A06B-6050-K060) (Method 2) 87
[V] VRDY-OFF Alarm Indicated on the CNC Screen 47
[W] When cutting is not performed, the spindle vibrates, making
noise. 53
R ev
is io
n R
ec or
d
F A
N U
C S
E R
V O
M O
T O
R α
s er
ie s
M A
IN T
E N
A N
C E
M A
N U
A L
(B -6
51 65
E )
02 Ju
n. , 2
00 0
T ot
al R
ev is
io n
01 A
pr .,
19 94
E di
tio n
D at
e C
on te
nt s
E di
tio n
D at
e C
on te
nt s
· No part of this manual may be reproduced in any form.
· All specifications and designs are subject to change without notice.


Shop IT - HomePage
Menu
Home
About
Contact
{% if not g.user.is_authenticated %}
Login
Register
{% else %}
Dashboard
Logout
{% endif %}
ShopIT
ShopIT is a Website that allows you to find nearby shops in your area.
{% if not g.user.is_authenticated %}
Get Started
{% else %}
Search For Shops
{% endif %}


Mohammed Murtuza Bhaiji -1001666586
Upload Data from CSV
Enter a magnitude
(Redis)Range From:
(Redis)Range To:
Range From:
Range To:
Queries:


Development Dungeon
Keyword Game "pew pew"
Home
High Scores
About Us
You have finally gotten to the end of the dungeon and you see a poor Mac Classic sitting on the ground. You see bombs with JavaScript keywords hanging above its old yellowing chassis.  You have determined that if you type the keyword written on the bomb it will disappear. But once you activate the terminal the bombs will start dropping.
Shoot the bomb by typing in the keyword:


Objects in JavaScript differs a bit from objects in Java. That means, that objects in JavaScript
also can act as variables which they can't in Java. Object-variables in JavaScript can contain
many values. These values in an object can then be called or changed. Spaces and line breaks in
in declaration of an object is not important. So for greater readability you can add as many line breaks
as wished.
A property in a js-object can be accessed in two different ways:
objectName.propertyName
or
objectName["propertyName"]
Example on JavaScript objects
In this example it will be demonstrated how an object gets initialized
and how it can be changed and overwrited to contain different values of data.
var thisSong = {"description": "The best song in the world.", "artist": "Michael Jackson", "song": "Billie Jean"};
//Removes the property "description" from the object
delete thisSong.description;
console.log("Only artist:", thisSong.artist);
console.log("All information:", thisSong)
//Overwriting the object with a property called "about".
thisSong = {"about": "Michael Jackson doesn't live any longer"};
console.log("Overwrited object:", thisSong);
//Output
Only artist: Michael Jackson
All information: { artist: 'Michael Jackson', song: 'Billie Jean' }
Overwrited object { about: "Michael Jackson doesn't live any longer" }
Strings
Strings in JavaScript get initialized with the var declaration
and can either be defined as predefined values or as input from an argument in a method.
A string in JavaScript stores a series of characters. A string can be a text of either
double or single quotes.
Example - getting a character from an index in a string
A specific character in a string can be accessed with either the method charAt() or
by indexing into the string. Furthermore you could say that a given string is a
sort of an array of chars.
var letters = "abc"
// Getting the character "c"
console.log("Letters: " + letters.charAt(2));
console.log("Array index: " + letters[2]);
//Output
Letters: c
Array index: c


Form generator is an utility that helps to generate form with appropriate controls.
Form generator features
- Support of form layout with multiple responsive columns;
- Automatic component rendering without predefined template;
- Ability to extend the default set of controls with custom ones;
- Dynamic validators for each form item
- Dynamic options for choice-based components
Questions in Form Generator can have:
- Individual labels with async function support;
- Support for adding a hint for question;
- Ability to set available variants for question with async function support;
- Transformation function which will transform form item value as defined in function itself;
- Standard Angular validators support;
- Question-specific validator function with asynchronous functions support;
- Rule function that can determine if question should be shown to the user;
Developers can also set default form field parameters by calling withConfig()
method of the
PlatformFormGeneratorModule
during it's import.
Form Generator Elements:
The table below shows a list of element types, attributes, and descriptions. All types have a built-in
validator function validators: [Validators.required]
but you can choose to write your own
validator functions.
| Type |
Attribute |
Description |
| {{ prop[0] }} |
{{ prop[1] }} |
{{ prop[2] }} |
Inline help default global options
Inline help has default options as below:
| Property name |
Value |
| {{ prop[0] }} |
{{ prop[1] }} |
if you want to modify default values globally and not per-field, provide
FDP_FORM_GENERATOR_DEFAULT_HINT_OPTIONS
in your module or component.


| File | Statements | Branches | Functions | Lines | |||||
|---|---|---|---|---|---|---|---|---|---|
| accounts.def.js | 48.72% | 38/78 | 100% | 0/0 | 11.11% | 1/9 | 48.72% | 38/78 | |
| admin.def.js | 100% | 11/11 | 100% | 0/0 | 100% | 1/1 | 100% | 11/11 | |
| alerts.def.js | 92.75% | 64/69 | 100% | 0/0 | 87.5% | 7/8 | 92.75% | 64/69 | |
| api.js | 100% | 11/11 | 100% | 0/0 | 100% | 0/0 | 100% | 11/11 | |
| auth.def.js | 54.55% | 18/33 | 100% | 0/0 | 25% | 1/4 | 54.55% | 18/33 | |
| control.def.js | 98.31% | 58/59 | 50% | 1/2 | 100% | 7/7 | 98.31% | 58/59 | |
| data.def.js | 100% | 33/33 | 100% | 0/0 | 100% | 4/4 | 100% | 33/33 | |
| devices.def.js | 63.2% | 79/125 | 50% | 1/2 | 35.71% | 5/14 | 63.2% | 79/125 | |
| iot.alerts.js | 91.3% | 21/23 | 100% | 0/0 | 85.71% | 6/7 | 91.3% | 21/23 | |
| iot.connection.def.js | 86.36% | 19/22 | 78.57% | 11/14 | 100% | 2/2 | 86.36% | 19/22 | |
| iot.control.js | 100% | 23/23 | 100% | 0/0 | 100% | 7/7 | 100% | 23/23 | |
| iot.data.js | 100% | 14/14 | 100% | 0/0 | 100% | 4/4 | 100% | 14/14 | |
| iot.devices.js | 63.64% | 35/55 | 50% | 1/2 | 44.44% | 8/18 | 63.64% | 35/55 | |
| iot.rules.js | 100% | 32/32 | 100% | 0/0 | 100% | 10/10 | 100% | 32/32 | |
| iot.users.js | 100% | 32/32 | 100% | 0/0 | 100% | 10/10 | 100% | 32/32 | |
| rules.def.js | 100% | 87/87 | 100% | 0/0 | 100% | 10/10 | 100% | 87/87 | |
| users.def.js | 100% | 82/82 | 100% | 0/0 | 100% | 10/10 | 100% | 82/82 |


Behind the scene
Being our very first commercial product, we at Horizon IoT Solutions, are very excited to see it really works to serve its purpose. Its a collection of hard work and commitment by all of us together.
Being our very first commercial product, we at Horizon IoT Solutions, are very excited to see it really works to serve its purpose. Its a collection of hard work and commitment by all of us together.
We have made this product to help other developers understand how the data aquisition model really works, moreover how it can form a whole breed of network to communicate amongst themselves and valued as really useful to us.


This project was built by a team of 6 for Portland State University Computer Science Capstone Project
Context AR is a web application built for instructors and students.
With this web app, instructors can build learning modules to guide students through a city using a gps based tour system.
Each learning module is composed of individual stages. Each stage will have a map location, and descriptive steps or goal.
This view will show modules near your area.
Here you can find a list of the available modules you have access to.
Here you can see the buttons for traversing the module, open a google maps linke, and finding you active position.
This is the view for completing a module.
To show instructors you have completed the module, you can use email, reddit, facebook and email.


Persona Profile
#singer
#content-creator
#singinsonyatt
Technology
- iPhone 12 Pro Plus, for the camera, and great screen
- Macbook Pro 13-inch for music and video editing
- Ring light, and Condenser Microphone
- Sonya is relatively neutral to technology. It serves her purposes well.
Attitude and Needs
- Humble and grateful for her 16k followers on TikTok.
- Posts videos of herself singing to make herself happy.
- Interested at the prospect of monetizing her TikTok account.
Frustrations
- Trolls and hateful comments.
- Being shown irrelevant content.
- Her videos aren't receiving as many views as they used to.
- Click-Baity content, and feeling the need to produce similar content to grow her account


ISchedule.ITimeFrame
Time frame for classes that have specific index.
Fields
index: number - index of classes
from: string - string representation of time when classes start
to: string - string representation of time when classes end


{% extends "base.html" %} {% block title %}Logged Out{% endblock %} {% block content %}
You have logged out.
You can go home.


People accepted defectors, we accept defeat: Shivakumar on K’taka bypolls
Bypolls were for 15 of 17 seats left vacant by MLAs who resigned in July, causing collapse of Cong-JD(S) and BJP's takeover.
by GARGI CHAUDHRYBengaluru: As the votes are being counted, the initial trends showed the Congress as the loser in the Karnataka by-polls on Monday.
Congress leader DK Shivakumar said, “We have to agree with the mandate of the voters of these 15 constituencies. People have accepted the defectors. We have accepted defeat. I don't think we have to be disheartened.”
Bypolls were for 15 of 17 Assembly seats left vacant by MLAs who resigned in July, causing the collapse of the Congress-Janata Dal Secular (JDS) coalition and the BJP's takeover.
The bypolls were held to fill vacancies caused by the disqualification of 17 rebel Congress and JD(S) MLAs, whose revolt led to collapse of the H D Kumaraswamy-led coalition government in July and paved the way for BJP to come to power.
The BJP needs to win at least six of the 15 seats to remain in majority in the 225-member Assembly including the Speaker, who has a casting vote), which would still have two vacant seats -- Maski and R R Nagar.
In the Assembly with the current strength of 208 after disqualifications, the BJP has 105 MLAs (including an independent), the Congress 66 and the JD(S) has 34 MLAs. There is also one BSP member, a nominated member and the Speaker.
Catch the latest news, live coverage and in-depth analyses from India and World. Follow us on Facebook and Twitter.


WE HAVE DECIDED TO CONTACT YOU DUE TO THE URGENCY OF THIS TRANSACTION, AS WE HAVE BEEN RELIABLY INFORMED OF YOUR DISCREETNESS AND ABILITY IN TRANSACTION OF THIS NATURE. LET ME START BY INTRODUCING MYSELF PROPERLY TO YOU. I AM AZEM USMAN THE MANAGER WITH THE BANK OF AFRICA , OUAGA.I CAME TO KNOW YOU IN MY PRIVATE SEARCH FOR A RELIABLE AND REPUTABLE PERSON TO HANDLE THIS CONFIDENTIAL TRANSACTION, WHICH INVOLVES THE TRANSFER OF HUGE SUM OF MONEY TO A FOREIGN ACCOUNT REQUIRING MAXIMUM CONFIDENCE. THE PROPOSITION: A FOREIGNER AN AUSTRALIA, LATE ENGR. STEVE MOORE (SNR.) AN BUESSINE MERCHANT WITH THE FEDERAL GOVERNMENT OF BURKINA, UNTIL HIS DEATH YEARS AGO IN KENYA AIR BUS (A310-! 301) FLIGHT KQ431, BANKED WITH US AT BANK OF BURKINA , OUAGA AND HAD A CLOSING BALANCE AS AT THE END OF SEPTEMBER, 2000 WORTH US$30,000,000.00 (THIRTY MILLION UNITED STATE DOLLARS), THE BANK NOW EXPECTS A NEXT OF KIN AS BENEFICIARY. VALUABLE EFFORTS ARE BEING MADE BY THE BANK OF AFRICAN TO GET IN TOUCH WITH ANY OF THE MOORE'S FAMILY OR RELATIVES BUT TO NO SUCCESS. IT IS BECAUSE OF THE PERCEIVED POSSIBILITY OF NOT BEING ABLE TO LOCATE ANY OF LATE ENGR. STEVE MOORE (SNR.)' S NEXT KIN (HE HAD NO WIFE OR CHILDREN THAT IS KNOW TO US). THE MANAGEMENT UNDER THE INFLUENCE OF OUR CHAIRMAN AND MEMBERS OF THE BOARD OF DIRECTORS, THAT ARRANGE HAS BEEN MADE FOR THE FUND TO BE DECLARED "UNCLAIMED" AND SUBSEQUENTLY BE DONATED TO THE TRUST FUND FOR ARMS AND AMMUNITION TO FURTHER ENHANCE THE COURSE OF WAR IN AFRICA AND THE WORLD IN GENERAL.  LATE ENGR. STEVE MOORE (SNR.) SO THAT THE FUND US$30 MILLION WILL BE RELEASED AND PAID INTO YOUR ACCOUNT AS THE BENEFICIARY'S NEXT OF KIN.   YOUR SHARE STAYS WHILE THE REST BE FOR MYSELF AND MY COLLEAGUES FOR INVESTMENT PURPOSE. ACCORDING TO AGREEMENT WITHIN BOTH PARTIES.    TRUSTED COLLEAGUES AND THE REMAINNING 10% FOR EXPENSES FOR BOTH PARTIES. IF THIS PROPOSAL IS ACCEPTABLE BY YOU, DO NOT MAKE UNDUE ADVANTAGE OF THE TRUST WE HAVE BESTOWED IN YOU. BEST REGARDS, DR.AZEM USMAN (MANAGER). _________________________________________________________________ Avec Windows Live OneCare éliminez tous les virus de votre PC ! http://www.windowslive.fr/liveonecare/default.asp


CircuitVerse Live Circuit!
This extension will now load live circuits in Google Slides. Make sure to install Google Slides Add-On as well. For more details, read the user documentation here.
This extension will now load live circuits in Google Slides. Make sure to install Google Slides Add-On as well. For more details, read the user documentation here.


Logout
Counselors
Dashboard
Counselors
Export Table
Name
Gender
Status
Phone
email
Block
Delete
Name
Gender
Status
Phone
email
Block
Delete
Add Counselors
×
Gender
Male
Female
Add Counselor
Export Counsellor Table
×
Name
Phone
email
Name
Phone
email


Filesystems in Lua Userspace
Here you can find a list of the functions present in the module and how to use them. Flu main module follows Lua package system, see the Lua 5.1 manual or Lua 5.2 manual for further explanations.
Quick links:
The flu
module has very few functions, most of the magic happens inside the fs
table passed to flu.main
.
flu.main (argv, fs)
Starts a new filesystem daemon. argv
is an array containing additionnal parameters to pass to the FUSE library. fs
is a table (or any indexable object) containing methods of the FUSE filesystem you are trying to create.
local luafs = {}
function luafs.getattr(path, stat)
error(flu.errno.ENOSYS)
end
local argv = {"luafs", select(2, ...)}
flu.main(argv, luafs)
flu.get_context ([tbl])
Obtain information about the context of the current FUSE request. A table is returned containing fields uid
, gid
and pid
(user, group and thread id of the calling process, respectively). If no arguments are given, a new table is created. If a table is passed as an argument, it is reused and fields are set in it instead.
These methods may be present in the fs
object passed to flu.main
. They are all optional, though without them your filesystem may not work properly. See example filesystems available in Flu packages for minimal requirements.
Below each functon is described with the parameters they are called with, and the expected return values on normal operation. Most functions though have no return value. To express error conditions, regular Lua error should be thrown with error
. The thrown error though have to be errno userdata values as found in the flu.errno table. For example:
error(flu.errno.EINVAL)
They are named methods here, but they are called as Lua function, without a self parameter. To maintain state, use upvalues.
As of FUSE 2.6, there are six FUSE methods that are not bound by Flu: and init
, destroy
, lock
and bmap
which I haven't used yet and are a bit complicated to bind, and getdir
and utime
which are obsolete.
stat = fs.getattr (path)
Get file attributes. stat
should be a table, with some of the following fields set:
dev
, number, ID of device containing fileino
, number, inode numbermode
, a set or a string, file type and permissions. If mode is a set, it's made of the recognized mode flags listed below. If it's a string, it's one of the predefined modes described below.nlink
, number, number of hard linksuid
, number, user ID of ownergid
, number, group ID of ownerrdev
, number, device ID (if special file)access
, number, time of last accessmodification
, number, time of last modificationchange
, number, time of last status changesize
, number, total size, in bytesblocks
, number, number of blocks allocatedblksize
, number, blocksize for filesystem I/OThis table is compatible with LuaFileSystem, though the default access rights for mode
strings (as described below) may not suit you.
The dev
and blksize
fields are ignored. The ino
field is ignored except if the use_ino
mount option is given.
Note that for the find command line utility to work in your filesystem, the nlink
field must be properly filled. See this FUSE FAQ entry for more details.
Mode flags:
blk
, the file is a block devicechr
, the file is a character devicefifo
, the file is a FIFOreg
, the file is a regular filedir
, the file is a directorylnk
, the file is a symbolic linksock
, the file is a socketrusr
, owner has read permissionwusr
, owner has write permissionxusr
, owner has execute permissionrgrp
, group has read permissionwgrp
, group has write permissionxgrp
, group has execute permissionroth
, others have read permissionwoth
, others have write permissionxoth
, others have execute permissionsuid
, set UID bitsgid
, set-group-ID bitsvtx
, sticky bitPredefined modes:
'file'
, equivalent to reg
, rusr
, wusr
, rgrp
and wgrp
'directory'
, equivalent to dir
, rusr
, wusr
, xusr
, rgrp
, wgrp
and xgrp
'link'
, equivalent to lnk
, rusr
, wusr
, rgrp
and wgrp
'socket'
, equivalent to sock
, rusr
, wusr
, rgrp
and wgrp
'named pipe'
, equivalent to fifo
, rusr
, wusr
, rgrp
and wgrp
'char device'
, equivalent to chr
, rusr
, wusr
, rgrp
and wgrp
'block device'
, equivalent to blk
, rusr
, wusr
, rgrp
and wgrp
'other'
, equivalent to an empty settarget = fs.readlink (path, size)
Read the target of a symbolic link. The target should be returned as a string, which size should not exceed size
.
function luafs.readlink(path, size)
return "/foo/"..path
end
fs.mknod (path, mode, rdev)
Create a file node. This is called for creation of all non-directory, non-symlink nodes. If the filesystem defines a create
method, then for regular files that will be called instead. mode
is a set, see fs.getattr
for a description of the recognized flags.
fs.mkdir (path, mode)
Create a directory. mode
is a set, see fs.getattr
for a description of the recognized flags.
fs.unlink (path)
Remove a file.
fs.rmdir (path)
Remove a directory.
fs.symlink (linkname, path)
Create a symbolic link. path
is the name of the link itself in the Flu filesystem, linkname
is the linked file.
fs.rename (oldpath, newpath)
Rename a file.
fs.link (oldpath, newpath)
Create a hard link to a file.
fs.chmod (path, mode)
Change the permission bits of a file. mode
is a set, see fs.getattr
for a description of the recognized flags.
fs.chown (path, uid, gid)
Change the owner and group of a file. uid
and gid
are numbers.
fs.truncate (path, size)
Change the size of a file.
fs.open (path, fi)
File open operation. fi
is a fuse_file_info
structure (see below). No creation, or truncation flags (creat
, excl
, trunc
) will be passed to fs.open
. Open should check if the operation is permitted for the given flags. Optionally open may also return an arbitrary file handle in the fh
field of the fuse_file_info
structure, which will be passed to all subsequent operations on that file.
The fuse_file_info
structure has the following members:
flags
, set, with the following flags recognized: append
, async
, creat
, direct
, directory
, excl
, largefile
, noatime
, noctty
, nofollow
, nonblock
, ndelay
, sync
, trunc
, rdwr
, rdonly
, wronly
writepage
, numberdirect_io
, booleankeep_cache
, booleanflush
, booleanfh
, number, the file handle that the filesystem can write tolock_owner
, numberdata = fs.read (path, size, offset, fi)
Read data from an open file. size
is the amount of data required in bytes. offset
is a position inside the file. See fs.open
for a description of fi
.
Read should return a string of size
length exactly except on end of file or on error, otherwise the rest of the data will be substituted with zeroes. An exception to this is when the direct_io
mount option is specified, in which case the return value of the read system call will reflect the return value of this operation.
fs.write (path, buf, offset, fi)
Write data to an open file. buf
is a string containing the written data. offset
is a position inside the file. See fs.open
for a description of fi
.
Write should return exactly the number of bytes requested except on error. An exception to this is when the direct_io
mount option is specified (see read operation).
stat = fs.statfs (path)
Get file system statistics. stat
should be a table, with some of the following fields set:
bsize
, number, file system block sizefrsize
, number, fragment sizeblocks
, number, size of fs in frsize unitsbfree
, number, # free blocksbavail
, number, # free blocks for non-rootfiles
, number, # inodesffree
, number, # free inodesfavail
, number, # free inodes for non-rootfsid
, number, file system IDflag
, table, mount flags as a Lua set, with the following recognized flags: rdonly
, nosuid
.namemax
, number, maximum filename lengthThe frsize
, favail
, fsid
and flag
fields are ignored.
fs.flush (path, fi)
Possibly flush cached data. See fs.open
for a description of fi
.
BIG NOTE: This is not equivalent to fsync(). It's not a request to sync dirty data.
Flush is called on each fs.close
of a file descriptor. So if a filesystem wants to return write errors in fs.close
and the file has cached dirty data, this is a good place to write back data and raise any errors. Since many applications ignore fs.close
errors this is not always useful.
NOTE: The fs.flush
method may be called more than once for each fs.open
. This happens if more than one file descriptor refers to an opened file due to dup(), dup2() or fork() calls. It is not possible to determine if a flush is final, so each flush should be treated equally. Multiple write-flush sequences are relatively rare, so this shouldn't be a problem.
Filesystems shouldn't assume that fs.flush
will always be called after some writes, or that it will be called at all.
fs.release (path, fi)
Release an open file. See fs.open
for a description of fi
.
Release is called when there are no more references to an open file: all file descriptors are closed and all memory mappings are unmapped.
For every open() call there will be exactly one release() call with the same flags and file descriptor. It is possible to have a file opened more than once, in which case only the last release will mean, that no more reads/writes will happen on the file. Errors in release are ignored.
fs.fsync (path, datasync, fi)
Synchronize file contents. If the datasync
parameter is true
, then only the user data should be flushed, not the meta data. See fs.open
for a description of fi
.
fs.setxattr (path, name, value, flags)
Set an extended attribute on the file. flags
is a set with the following recognized flags: create
, replace
. If create
is set the method should throw an error if the attribute exists. If replace
the method should throw when the attribute doesn't exist.
value = fs.getxattr (path, name)
Get an extended attribute. If the attribute doesn't exist ENODATA
should be thrown.
list = fs.listxattr (path)
Return a list of extended attribute names. list
should be an array of strings.
fs.removexattr (path, name)
Remove an extended attribute. If the attribute doesn't exist ENODATA
should be thrown.
fs.opendir (path, fi)
Open directory. This method should check if the open operation is permitted for this directory. See fs.open
for a description of fi
.
fs.readdir (path, filler, fi)
Read directory. filler
is a function with the prototype filler(name)
that must be called for each directory entry, and that will return false
when the output buffer is full, true
otherwise. See fs.open
for a description of fi
.
fs.releasedir (path, fi)
Release a directory. See fs.open
for a description of fi
.
fs.fsyncdir (path, datasync, fi)
Synchronize directory contents. If the datasync
parameter is true
, then only the user data should be flushed, not the meta data. See fs.open
for a description of fi
.
fs.access (path, mask)
Check file access permissions. This will be called for the access()
system call. If the 'default_permissions'
mount option is given, this method is not called.
This method is not called under Linux kernel versions 2.4.x.
fs.create (path, mode, fi)
Create and open a file. mode
is a set, see fs.getattr
for a description of the recognized flags. See fs.open
for a description of fi
.
If the file does not exist, first create it with the specified mode
, and then open it.
If this method is not implemented or under Linux kernel versions earlier than 2.6.15, the mknod() and open() methods will be called instead.
fs.ftruncate (path, size, fi)
Change the size of an open file. See fs.open
for a description of fi
.
This method is called instead of the fs.truncate
method if the truncation was invoked from an ftruncate()
system call.
If this method is not implemented or under Linux kernel versions earlier than 2.6.15, the fs.truncate
method will be called instead.
fs.fgetattr (path, st, fi)
Get attributes from an open file.
This method is called instead of the fs.getattr
method if the file information is available.
Currently this is only called after the fs.create
method if that is implemented (see above). Later it may be called for invocations of fstat()
too.
fs.utimens (path, access, modification)
Change the access and modification times of a file with nanosecond resolution. access
and modification
are Lua tables with two fields each:
sec
, number, time in secondsnsec
, number, the sub-second portion of the time, in nanoseconds


Mary is a programmer. She wrote Gitlet, an implementation of Git in JavaScript. She made Isla, a programming language and dev environment for children. She wrote two games, Pistol Slut and Empty Black. She works at the Recurse Center. She tweets @maryrosecook. She lives in New York City.
David Nolen
Invent the Future You Want To Live In!
Among other things, David enjoys programming computers and playing music.
Speakers
Lea Albaugh
From text to textiles!
Industrial computer-controlled knitting machines can quickly and reliably fabricate arbitrary three-dimensional fabric objects (!), but how do I tell one what to make? It turns out that most of what we want to do comes down to four basic machine operations and a lot of repetition. But we're coders (/ music makers / dreamers of dreams), so we know that what "four operations and a lot of repetition" really means is: what are the useful abstractions?
When it comes down to it, what's an elegant way to tell a machine how to make a hat? Or lace? Or patterned socks? And how might I write that in JavaScript?
Lea makes things in a variety of physical and virtual media.
Kiran Bhattaram
Bending the Laws of Physics! Or, How Wi-Fi Keeps Getting Faster.
Shannon's Law tells you how fast you can transmit information over a channel with a given bandwidth and noise level. You just can't beat the limit — until we start talking about ways you can.
Learn how adding more antennas lets you squeeze more information out of the air! (Note: this is actually the coolest!)
Kiran Bhattaram loves making things, whether tinkering with circuits, writing software systems, or sewing dresses. She works on Stripe's infrastructure team, and has previously built things for the New York Times, LinkedIn and MIT CSAIL.
Ashley Blewer
Don't know about you, but I'm feeling like SHA-2!: Checksumming with Taylor Swift
I like checksums! I like Taylor Swift! Some people don't understand checksums! Some people don't understand Taylor Swift! But what's the big deal? That's okay! I want to give a talk that gives an overview of different checksum technologies when used for file fixity (and a little bit of information transformation and security) at a broad level using Taylor Swift lyrics as a reference and source of explanation and enlightenment because I think this tech is SO WEIRD AND INTERESTING and I also feel that way about Taylor Swift. Also I think it's fun. It will be fun. It will be at least 50% Taylor Swift.
Ashley Blewer is an audiovisual archivist, specialist, technologist, and enthusiast. She likes a lot of things. She cares about education (especially in tech), access (especially to moving images), the act of creation (especially on the web), and good archival practice (especially with digital formats).
Peter Boothe
QUINE + TAR = QUININE!!
Quines are self-printing programs. Every program can print out its own source code, and storage has become exceedingly cheap. So, we introduce Quinine, a library that uses fixed points, analytic philosophy, and tape storage tools to make open-source programs that carry their source code with themselves.
Quinine: Quine made from tar.
Peter Boothe is a software engineer and Internet researcher at the Google part of Measurement Lab. If you see a couple riding around New York on a bright orange folding tandem bike, one of the cyclists is almost certainly him.
Fiona Condon
Eternal Sunshine of the Spotless Search Index!!
Search engines are designed for remembering, but sometimes you need to forget. I built a custom search engine in Python to help me quit my time-suck nail art habit and my cuticles have never felt better. I'll show you how to use ranking techniques to hide dangerous reminders, text normalization as a safeguard against ill-advised nostalgia, and token blacklists to forget about the old you once and for all.
Fiona is a senior software engineer on Etsy's search experience team, drawing from decades of experience losing and finding her stuff. She lives in Brooklyn and loves reality TV and McDonald's breakfast.
Nick Doiron
Git Pushes from Paradise: Adding a remote island alphabet to Wikipedia!
On Majuro Atoll, in the Republic of the Marshall Islands, I was tasked with setting up a technology education program. The students and teachers were among the 50,000 people in the world who speak Marshallese, a language I knew next to nothing about. Even typing the characters of the Marshallese alphabet can be a challenge, and writing apps to support Marshallese proved difficult.
I discovered that most people use a custom font to read and write Marshallese letters by replacing x's, k's, and other letters on their American keyboards. Through some hacking with Unicode, JavaScript, and GitHub, I got a special keyboard added to Wikipedia and its open source library jQuery.IME. And I ended up with some useful internationalization and localization knowledge!
Nick Doiron is a web developer and mapmaker at the Museum of Modern Art. He has developed several open source applications with One Laptop per Child and Code for America. He is currently developing a multilingual eBook reader with a grant from the USAID All Children Reading program.
Bonnie Eisenman
Music! Programming! Arduino! (Or: Building Electronic Musical Interfaces to Create Awesome)
Ever wanted to build wacky interfaces for shaping sound? Turns out it's easier than you might expect! By combining Arduino, a beginner-friendly electronic prototyping platform, and ChucK, a musical programming language, we can build some weird electronic musical instruments. Prior knowledge required: basic programming skills and an active imagination. I'll show off one of my experiments and discuss how to go about imagining your own projects.
Bonnie Eisenman is a software engineer at Codecademy in New York. She has spoken at several conferences on topics ranging from ReactJS to musical programming and Arduinos. In her spare time, she enjoys building electronic musical instruments, tinkering with hardware projects, and laser-cutting chocolate. Find her on Twitter as @brindelle.
Lisa van Gelder
Great Caching Disasters (and how to avoid them)!
Whenever something has gone seriously wrong for me in production, caching has been at the root of it. Live Q&A with Julian Assange almost brought the site down? Caching fail. Servers can't cope with traffic about a new woolly rat? Caching fail. Half the site is showing sorry pages? Caching fail. This talk will use these disasters to explain why it's important to keep caching simple.
Lisa has over 15 years experience in software engineering, including leading and managing software development teams. Her career has taken her between London and New York, and from small startups to large media organizations, including the Guardian and the BBC. She is currently VP of Engineering at Stride.
Polina Giralt & Anita Mehrotra
The Science behind #TheDress: Measuring Virality at BuzzFeed!
How did #TheDress gain international attention in just a few hours?
We answer this question by sharing how BuzzFeed thinks about the spread of content via social platforms. We then talk about how we use graph data to measure virality and the scaling problems we've seen along the way. Finally, we share how such analysis has led to tools that are useful to BuzzFeed's ability to rapidly disseminate critical information to a global audience.
Polina is a Data Engineer at BuzzFeed, where she productionalizes prototypes and builds data things. When she's not crushing bytes, Polina can be found practicing bass guitar or snowboarding. She pronounces it 'GIF'.
Anita is a Data Scientist at BuzzFeed, where she uses frequentist and Bayesian machine learning to understand how content goes viral. Originally a California girl, Anita also writes listicles, spins Soul Cycle, and teaches at Girls Who Code — sometimes at the same time (jk obvs).
Libby Horacek
Contributing to open source should be like ROLLER DERBY!!
Imagine if every time beginners stumbled into your project, they risked breaking a leg. Eventually, you would start taking onboarding very seriously. Roller derby leagues also have to recruit new players and prevent burnout. The strategies roller derby players have developed to build and maintain strong volunteer-run organizations can be used to make open source better, too — no body checking needed!
Libby Horacek has been excited and passionate about open source and free software for over a decade. She finally made her first contribution to an open source project last year. She also was a member of the Ohio Valley Roller Girls roller derby league, first as a skater and then as a volunteer, for four years before moving to New York to attend the Recurse Center this January.
Rob Jefferson
What Programmers and Economists Can Learn from Each Other!
Over the past twenty years, I've been a sysadmin, researcher, and graduate student in economics. Somewhere in the past couple of years, I became a software engineer. With these varied experiences, I found that there were skills and practices I learned as a programmer that would've helped me in economics (for example, writing good tests, or coding with an eye towards modularity).
Similarly, there were lessons I learned while studying economics that I've taken with me to programming (making technical decisions at the margin, solving problems while being mindful of endogeneity). And there are things that both programmers and economists can and should learn, especially regarding understanding limitations of their respective toolkits and the importance of working with compassion and empathy.
In this talk, I'd like to share some of these lessons, with motivating examples of the research process.
Rob Jefferson is a software engineer for Solutions for Progress, a Philadelphia public policy and technology firm. He's had a number of other jobs, from developing containerized urban farms to server administration for oncologists.
Allison Kaptur
Limitless and recursion-free recursion limits!
You might have hit the recursion limit in Python. But "recursion" isn't quite right — we can hit it without any recursion! "Limit" is right...but it doesn't have to be! In this talk, I'll show a tremendously silly Python bytecode hack to circumvent the limit.
Allison Kaptur gets inexplicable delight from Python internals. She worked at Recurse Center as a facilitator for two years before joining Dropbox. She now lives in San Francisco and tries to be outside as much as possible.
Sasha Laundy
Spinning metal platters in the cloud!
These days, data scientists use very powerful frameworks and tools to crunch huge amounts of data. They use frameworks that operate at a very high level of abstraction, and often spin up virtual machines that can be across the country or across the world. But even though these computers are "in the cloud" and this is all super abstract, you actually have to understand how the physical spinning metal hard drive works in order to write fast queries! This talk will go through a few examples of how working with the hardware in your system can make your code run literally 100,000 times faster than before!
Sasha is interested in using data and data science to learn more about the world. She is currently reading a lot about weightlifting, exoplanets, and genomics, and recently brewed her first batch of beer. She nevergraduated from the Recurse Center two years ago.
Kevin Lynagh
I made a cell phone! (DON'T TELL THE FCC KTHX!)
Cell phones are awesome! But how do they work? We all know there's a part you talk into and a part that your friend talks out of, BUT WHAT HAPPENS INSIDE?
I decided to find out by designing and building my very own cell phone out of resistors and capacitors and other really small stuff. (I had to buy tweezers.)
This talk will overview this adventure, which also includes wood-cutting robots and a computer that is TOO SMALL FOR JAVASCRIPT.
Kevin Lynagh is a Portland, Oregon-based designer and computerist at Keming Labs. He has designed software for wind turbine technicians, meteorologists, and manufacturers of hipster housewares. When Kevin is not computering, he enjoys industrial design, Olympic lifting, and snacks.
Kamal Marhubi
What the clock?!!
 Time is WEIRD. Time and computers is REALLY WEIRD. And kind of awesome.
We'll learn how many seconds there are in a year, what UTC really means, that DST goes in different directions north and south of the equator, how you can't measure time in nanoseconds because of relativistic effects, and generally just as much weird stuff about time fits into ten minutes.
Kamal Marhubi is a polyglot programmer who lives in Montréal. He is not-so-secretly addicted to English change-ringing, and has rung the bells of over twenty churches in England, Canada, and the US.
Josh Matthews
Time travel, gdb, elephants, and you!!!!
Everybody knows that feeling — you're in the middle of tracking down a complicated piece of multithreaded non-determinism gone wrong. You're stepping through your code in the debugger, watching breakpoints fly by, and SUDDENLY it's too late! The problem you're watching for has already occurred, and you need to start all over again. Or do you?
The rr tool is the harbinger of an exciting new era of hassle-free debugging. Time travel has never been simpler, and an eidetic memory is within your grasp today! You will not believe how these wacky longstanding bugs in Firefox were solved!
Josh is a developer for Mozilla, and absolutely loves making open source projects more accessible to new contributors. He also sings in a barbershop quartet called the Bearded Baritones.
Allison Nelson
Dissecting a Bestseller: The Art and Science of Storytelling!
Storytelling has been a pastime since the beginning of humankind, but in the last few years more voices than ever before are being heard, thanks to the internet. Book publishing is no longer an industry guarded by gatekeepers and publishing houses, and anyone can publish works through services such as Kindle Direct Publishing.
Being an independent author myself, I wondered: what makes a bestseller? Are there trends? Is there some magical formula for book success? I analyzed dozens of books from the bestseller lists on Amazon using natural language processing algorithms. By combining the age-old craft of storytelling with new tools for data analysis, I investigate just what makes a bestseller tick.
Allison Nelson is an engineer from San Francisco where she spends her time building data tools, writing fantastical stories, and enjoying the sunshine. Her two biggest passions are programming and writing, and she's happiest when combining the two. The size of her hair is matched only by the size of her ideas.
Simon Sapin
Cross-platform file names in Rust: a wonderful and horrifying hack!
On Unix, file names (and other strings in system APIs) are arbitrary 8-bit bytes — usually UTF-8, but not necessarily. On Windows, they're "wide" strings of arbitrary 16-bit units — usually UTF-16, but not necessarily.
Either way, your program should not crash when it encounters a weird file name. The Rust standard library has a clever hack to deal with this in cross-platform code and mostly hide the complexity from users. Let's dive into the gory details!
Simon works at Mozilla Research on Servo, a new browser engine written in Rust and designed from the ground up for parallelism and safety. He also works on CSS specifications at W3C's CSS Working Group.
Max Veytsman
i'm in ur javaz haxxing ur codez!
Every time you start a new Java (or Clojure, Scala, and so on) project, your build tool will automagically download a bunch of code from the internet for you. Until last summer, that code was downloaded in the clear. Until last summer, someone sitting in the coffee shop where you code could surreptitiously inject lolcats directly into the Java bytecode you thought you were downloading.
In this talk, I will show you exactly how to hijack HTTP sessions of unsuspecting strangers who happen to be fetching Java bytecode and infest their code with unimpressed kittens.
I'll go over how to decompile Java class files, how to draw furry animals using Java bytecode, and how to inject this bytecode into Java archives without breaking what the library actually does. And I'll tell you how I convinced the company that hosts your Java packages to start using SSL.
Max Veytsman is a recovering penetration tester. He rediscovered his love for programming at the Recurse Center, and is now spending his days building Canary and other tools to further automate himself out of a job.
Scott Vokes
The Burrows-Wheeler Transform: Better Compression with a Reversible Sort!!
The Burrows-Wheeler Transform is my favorite algorithm! It partially sorts data, exposing structural patterns that make other compression algorithms more effective. Amazingly, the original input can be recovered from just the transformed data with just a starting offset.
In this talk, I'll give a bit of background info about the BWT and its uses, then reveal the insights that make it possible. I'll build up a straightforward version in Python, then show optimizations a production implementation might make.
Scott is a consultant at Atomic Object, where he builds embedded and distributed systems. Outside of work, his research interests include information retrieval — recent open source contributions include a data compression library for hard real-time systems, testing tools for C, and a content-addressable store.
Igor Wiedler
MissingNo., my favourite Pokémon!
Missing Pokémon! Glitch City! Cloning! The Pokémon series featured some spectacular glitches that can teach us a lot about programming, computers, and distributed systems. When programs behave in unexpected ways, we gain the opportunity to change outcomes by using programming as a subversive act. Breaking the rules can open up new worlds!
I love glitches. <3
Igor is a programmer who is a little bit too fake, loves puns, and works at gif.industries.
Jon Williams
Lightpainting with Robots! And JavaScript!
About a year ago I bought a uArm desktop robot via Kickstarter. It's tons of fun and I've learned a lot about C and Arduino real-time programming. However, C is a total pain and it'd be much more fun to use JavaScript instead. I'll demonstrate sending the robot commands over serial/Bluetooth from NodeJS.
I combined this with an RGB LED and a second Arduino controller. This LED can be controlled from the same JS program controlling the robot. Add a dark room and long-exposure photography, and it's possible to create amazing in-camera "paintings" with pure light (no Photoshop). Presentation will include a few inspirational examples, a dash of code (open-sourced at !!Con), and a live demo.
Jon ran a poetry slam and connected a robotic ouija board to the Internet pre-2000. After a long and complex relationship with ActionScript, denial gave way to anger, bargaining, depression, and now acceptance of JavaScript. He lives in Raleigh, NC and tweets @shovemedia.
Joshua Wise
Recovering data from an SD card — the hard way!
A while ago, I accidentally snapped an SD card in half. It had a bunch of photos on it that I didn't have backed up, but on the other hand, I don't believe in losing data! After discovering that the memory chip on it was still intact, but that the controller chip was dead, I decided to try to pull the data out of the raw memory chip. Along the way, I learned a whole bunch of stuff about flash memory. I also learned that people jump through a lot of hoops in order to make flash memory behave like a hard drive, when in reality, the two aren't much alike at all!
In this talk, I'll tell you more about the story of putting the pieces back together, and I'll give you an introduction to some of those strange things that people do with flash. Also, you can laugh at me for not making backups.
Joshua spends most of his time at work during the week alternating between writing specifications that turn into chips and reading climbing blogs. He doesn't really believe in learning his lesson, either, and probably will show up to his talk with an SD card hanging out of the side of his laptop, ready to be smashed in half once again.


devtools::install_github("stencila/r")
Alternatively, check the releases page for prebuilt versions.
 When you start the Stencila Desktop it will be automatically detect the installed R package and you’ll be able to execute R code cells from within your documents.
Apache-2.0


Work Experience
Machine Learning Intern, MAD STREET DEN, Chennai
- Duration : March 2021 - Present
- Worked in clustering of catalogue items using Artificial Neural Networks.
Undergraduate Research Assistant, SOLARILLION FOUNDATION, Chennai
- Duration : February 2020 - Present
- Research on sign language translation.
Freelance Projects
- Duration : October 2020 - Present
- Undertook projects via Freelancer.com.
- Classification of ICD Code using state of art Transformer Model.
- Malware Detection using Deep Learning and Artificial Neural Networks.
- Arabic Tweet Rumor Detection using NLP and LSTMs.
ML / AI Intern, APPCILIOUS PVT LTD, Bangalore
- Duration : August 2020 - September 2020
- Data preprocessing, data cleaning.
- Developed a chat bot using modern NLP architectures and techniques.
- Feature extraction and feature comparison using SIFT and OpenCV.
Summer Intern, PRODIAN INFOTECH PVT LTD, Chennai
- Duration : June 2020 - August 2020
- Data preprocessing, data cleanning of cricket match data and feature analysis.
- Applying Unsupervised ML Algorithms to get the top 5 features that affect a cricket match.


Home
Profile
Conference
Social networks
Multimedia
Favorites
Settings
About
Sign In
C
O
Sign in !
Username
Password
Your profile
Benslimane Abderrahim
Status
-----
Mail :
<EMAIL_ADDRESS>Password :
-----
About
----------
Save


(long* a, long m, long* b, long n, long* c)
Find kronecker product of m by 1 vector a and n by 1 vector b.
Documentation
Find kronecker product of m by 1 vector a and n by 1 vector b.
Resulting m*n by 1 product is passed back via c
- Parameters:
- a - an m x 1 vector
m - length of a
b - an n x 1 vector
n - length of b
c - an m x n array which, on exit, holds the kronecker product
Alphabetic index
This page was generated with the help of DOC++.


Please complete the following form to register for our site
First Name: (First Name)
Last Name: (Last Name)
Email<EMAIL_ADDRESS>Please fill out our optional survey: What year are you in college? Not yet in college Freshman Sophomore Junior Senior Graduate
Please fill out our optional survey: What year are you in college?
Not yet in college Freshman Sophomore Junior Senior Graduate
Contact Web Administrator @ email@uta.edu


Preparation time
less than 30 mins
Cooking time
less than 10 mins
Serves
Serves 2
A quick meal that's packed with flavour from the sourdough and grilled pepper, and a simple way to eat more fish.
Using tongs, hold the pepper over a gas flame and cook, turning, until black all over. Put it into a bowl, cover with cling film and leave for a few minutes. Remove the black skin from the pepper, scoop out the seeds and chop the flesh.
Heat a grill pan to medium-hot. Rub the sourdough with half the oil and the garlic and grill on both sides until browned. Set aside.
In a bowl, mix the spring onions, parsley and chilli. Toss in the Romano peppers.
Preheat the grill to high. Spread the remaining oil on a baking tray. Add the sardines, season with salt and pepper and grill on one side for 1 minute, or until cooked.
For the slaw, place the vinegar, water and sugar in a saucepan and heat until the sugar has dissolved. Mix the other slaw ingredients in a large bowl. Just before serving pour over the liquid and add the coriander.
To serve, garnish on the bread with the pepper mix, add the sardines and finish with a touch more garnish and a squeeze of lemon. Serve immediately with the slaw.


Link to a plunker with the angular that I put together to dynamically display my objects.
http://plnkr.co/edit/4Pj6vSkndX3jBHNsupER?p=preview
Whole String : {{response}}


The collapsible component allows blocks of content on a page which collapse under the first element in the block.
To make a block of content collapsed, simply add the
data-collapsible
attribute to the block element. If you
want the block collapsed by default when the page loads, add the
data-collapsed
attribute.
This block of text is collapsed by default.
This block of text is not collapsed by default.
This block of text is collapsed by default.
The collapsible content will all collapse under the first-child
element within the collapsible block. You should make sure the
first-child element is a display: block
element to
ensure that content doesn't jump around when the parent block is
collapsed or uncollapsed.
For styling purposes, you may also desire for the first element to be only one line tall. You may use the truncate component on the first-child element to achieve this effect.
This block of text is collapsed by default.
Normally, we'd attach the styles for a component to a class and
the JavaScript to a data-
attribute. However, the
collapsible component doesn't work without JavaScript, so we've
attached both the styling and the functionality to the
data-collapsible
attribute. This way, it degrades
gracefully to a standard content block when JS is disabled.


22 February 2012 - The Ministry of Health and Population of Egypt has notified WHO of a new case of human infection with avian influenza A (H5N1) virus.
The case is a 45 year-old female from Menofia governorate. She developed symptoms on 10 February 2012, received oseltamivir treatment on 17 February 2012 and is still recovering. The case was laboratory confirmed by the Central Public Health Laboratories; a National Influenza Center of the WHO Global Influenza Surveillance Network on 18 February 2012.
Epidemiological investigation into the source of infection indicate that the case had exposure to backyard poultry.
Of the 160 cases confirmed to date in Egypt, 55 have been fatal.


Web Programming
SYST10199
Class 13 Notes
Prepare for next class
Study the assigned material and make notes.
Complete Worksheet 1.
—
Post your questions on the Discussion board
or bring to next class. Answer other students' questions. Start a conversation.
—


#include <ToolBox_DateTime.h>
◆ Date() [1/2]
ctor, creates an invalid date
◆ Date() [2/2]
| ToolBox::Date::Date |
( |
uint8_t |
uiDayInMonth, |
|
|
Month |
eMonthInYear, |
|
|
uint16_t |
uiYear |
|
) |
| |
|
explicit |
◆ addDays()
| void ToolBox::Date::addDays |
( |
int16_t |
iDays | ) |
|
◆ getDayInMonth()
| uint8_t ToolBox::Date::getDayInMonth |
( |
| ) |
const |
◆ getDayOfWeek()
| DayOfWeek ToolBox::Date::getDayOfWeek |
( |
| ) |
const |
◆ getDaysPerMonth()
| uint8_t ToolBox::Date::getDaysPerMonth |
( |
Month |
eMonth, |
|
|
uint16_t |
uiYear |
|
) |
| |
|
static |
get number of days in given month in given year
◆ getDaysTo()
| int32_t ToolBox::Date::getDaysTo |
( |
Date const & |
rTo | ) |
const |
Berechnet die Anzahl Tage von diesem Datum zum angegebenen
◆ getMonthInYear()
| Month ToolBox::Date::getMonthInYear |
( |
| ) |
const |
◆ getYear()
| uint16_t ToolBox::Date::getYear |
( |
| ) |
const |
◆ isLeapYear()
| bool ToolBox::Date::isLeapYear |
( |
uint16_t |
uiYear | ) |
|
|
static |
check wether the given year is a leap year or not
◆ isValid() [1/2]
| bool ToolBox::Date::isValid |
( |
uint8_t |
uiDayInMonth, |
|
|
Month |
eMonthInYear, |
|
|
uint16_t |
uiYear |
|
) |
| |
|
static |
check wether the given date is valid or not
◆ isValid() [2/2]
| bool ToolBox::Date::isValid |
( |
| ) |
const |
◆ operator!=()
| bool ToolBox::Date::operator!= |
( |
Date const & |
rOther | ) |
const |
◆ operator<()
| bool ToolBox::Date::operator< |
( |
Date const & |
rOther | ) |
const |
◆ operator<=()
| bool ToolBox::Date::operator<= |
( |
Date const & |
rOther | ) |
const |
◆ operator==()
| bool ToolBox::Date::operator== |
( |
Date const & |
rOther | ) |
const |
◆ operator>()
| bool ToolBox::Date::operator> |
( |
Date const & |
rOther | ) |
const |
◆ operator>=()
| bool ToolBox::Date::operator>= |
( |
Date const & |
rOther | ) |
const |
◆ toString()
| String ToolBox::Date::toString |
( |
String const & |
rsFormat | ) |
const |
convert Date to String
- Parameters
-
| rsFormat | Format of string to create; use "DD" for day in month, "MM" for month in year, "YYYY" for year the format is case-sensitive |
- Returns
- date as string
◆ DateTime
◆ EEPROMStorage
The documentation for this class was generated from the following files:


Criminal
Criminal is a movie starring John C. Reilly, Diego Luna, and Maggie Gyllenhaal. Two con artists try to swindle a currency collector by selling him a counterfeit copy of an extremely rare currency bill.