background image

 

 

 

 

USER’S MANUAL 

INTELLIGENT MOTION CONTROLLER 

FOR ETHERNET 

MAXnet 

 
 
 
 
 

OMS Motion, Inc. 

15201 NW GREENBRIER PARKWAY 

B-1 RIDGEVIEW 

BEAVERTON, OR 97006 

PHONE 503-629-8081 

FAX 503-629-0688 

 
 
 
 

Summary of Contents for MAXnet

Page 1: ... INTELLIGENT MOTION CONTROLLER FOR ETHERNET MAXnet OMS Motion Inc 15201 NW GREENBRIER PARKWAY B 1 RIDGEVIEW BEAVERTON OR 97006 PHONE 503 629 8081 FAX 503 629 0688 mailto support omsmotion com http www omsmotion com ...

Page 2: ... PC DOS are registered trademarks of International Business Machines Corporation CompactPCI PICMG PCI PICMG are registered trademarks of the PCI Special Interest Group LabView is a registered trademark of National Instruments Windows 7 Vista XP 2000 Win NT are registered trademarks of Microsoft Corporation DISCLAIMER OMS Motion Inc makes no representations or warranties regarding the contents of t...

Page 3: ...2 3 3 ASCII COMMAND RING BUFFER 3 3 3 4 ASCII RESPONSE RING BUFFER 3 3 3 5 DYNAMIC LINK LIBRARY 3 3 3 6 MAXnet COMMUNICATION ARCHITECTURE 3 4 3 7 REAL TIME POSITION CAPTURE 3 5 4 CONTROL SIGNAL INTERFACE 4 1 4 1 INTRODUCTION 4 1 4 2 LIMIT INPUTS 4 3 4 3 HOME INPUTS 4 3 4 4 GENERAL PURPOSE DIGITAL I O 4 3 4 5 ANALOG I O 4 3 4 6 MOTOR CONTROL OUTPUT 4 4 4 7 ENCODER FEEDBACK 4 6 4 8 HOME PROCEDURES 4...

Page 4: ...TABLE OF CONTENTS MAXnet User s Manual ii This page is intentionally left blank ...

Page 5: ... 0 to 8 000 000 pulses per second per second The servo control utilizes a 16 bit DAC and outputs either 10V or 0 to 10V The encoder feedback control can be used as feedback for the servo PID position maintenance for the stepper axes or as strictly a position feedback of any axis The incremental encoder input supports differential or single ended quadrature TTL signals at a rate of up to 16 MHz The...

Page 6: ...by sending and receiving strings of data ASCII characters via standard Ethernet communication protocol or RS 232 While not strictly required DLLs are provided to allow applications written in high level languages to communicate with the controller Software provided by OMS Motion Inc directly supports the use of Microsoft C C or Visual Basic In addition any language that has a mechanism for utilizi...

Page 7: ...ired to protect the extended pins on the bottom of the MAXnet CAUTION The RS 232 communication port is a DTE com device so that straight connection can be used for communication RxD to TxD TxD to RxD Two handshake signals are supported CTS and RTS that can also be connected straight through baud rates of 9600 19200 38400 57600 and 115200 are supported Any terminal device that supports these signal...

Page 8: ...ly configured The LED labeled D3 on the opposite edge of the card from the J1 connector indicates a successful boot of the firmware If both of these LEDs are on solid and all other LEDs are off the MAXnet is ready to communicate With the MAXnet expansion board for 6 10 axes of motion the green LED D1 next to the J5 power connector is lit when power is applied If the red LED labeled D101 located by...

Page 9: ...igured sending the characters WY to the MAXnet will produce the same model version and serial number as it did in the prior RS 232 test However when using Ethernet communications for each packet sent to the MAXnet controller the controller responds with an acknowledgement packet that contains data consisting of a single ACK character TABLE 2 2 ETHERNET CONNECTOR J8 Pin out Pin Signal Function 1 BI...

Page 10: ...g 0 40 1 01 Bel Stewart Connector 08B0 1X1T 36 F J8 0 05 overhang 0 50 0 48 Molex 43045 0600 J5 0 35 Ethernet Serial 3 05 All dimensions are in inches 1 unless otherwise specified J9 Expansion Connection 0 05 0 62 6 50in 4 00 0 140 0 140 Ø 0 1255 0 140 Ø 0 1255 0 140 0 120 Ø 0 1255 0 120 Ø 0 1255 0 140 Ø 0 1255 Ø 0 1255 Ø 0 1255 0 140 3 125 Ø 0 1255 0 390 0 140 0 72 1 84 1 84 0 140 All dimensions ...

Page 11: ...0 All hole diameters are 0 1 3 125 0 120 0 140 0 140 0 140 0 140 0 140 0 140 6 50 4 00 FIGURE 2 4 MAXNET EXPANSION BOARD DIAGRAM FIGURE 2 5 MAXNET EXPANSION BOARD CONNECTOR LOCATIONS 0 48 0 05 overhang 0 50 3 05 0 62 0 05 0 34 0 05 overhang 0 34 0 35 0 25 J1 All dimensions are in inches 1 unless 6 5 4 0 J J4 Expansion Connection Molex 4305 0600 Tyco Amp 5787169 9 ...

Page 12: ...b baud rate P comm port or OMSuite exe Select the communication parameters from the Boards drop down menu Type WY and observe the response from the MAXnet If you are communicating to the MAXnet it would return its version number number of axes FPGA version number etc You should receive a reply similar to MAXn 5000 Ver x xx S N 000001 FPGA 20 from the MAXnet If you receive nothing double check that...

Page 13: ... Attach the STEP outputs from the controller to the STEP inputs on the stepper driver Do the same for DIR signals Next connect an external power supply which is OFF to the stepper driver Again refer to the manufacturer s manual for instructions Note that power supply requirements differ from driver to driver Once all wire connections have been made power can be restored to your system It is recomm...

Page 14: ...ler via the IOMAXnet Interface Module to Servo Motor MAXnet J1 IOMAXnet TERMINAL BLOCK DRIVER MOTOR GROUND GROUND 5V DIRECTION STEP AUXILIARY PHA AUXILIARY INPUT PULSE DIRECTION Vi PHB PHB PHA PHA PHB PHB PHA 24 Vdc MAXnet J1 IOMAXnet TERMINAL BLOCK DC SERVO AMPLIFIER SERVO MOTOR ENCODER X SERVO Analog Ground Analog Input Ground Ground 5V X PHASE A X PHASE A X PHASE B X PHASE B X INDEX X INDEX SEE...

Page 15: ...fier if equipped until the motor stops moving e If the motor continues to revolve or your amplifier has no balance adjustment i Send the command KO100 to the MAXnet ii If the motor spins faster reduce the command parameter and resend the command e g KO50 iii If the motor spins slower but does not stop increase the command parameter and resend the command e g KO150 iv Continue adjusting and resendi...

Page 16: ...n of your servo encoder a Send the LP0 KO2000 command to the MAXnet b Send the RE command to the MAXnet and observe the response c If the response is positive no further action need be taken go to step 6 i If the response is negative your encoder or analog output must be reversed use one of the methods below ii Use EDI EDN to invert normalize encoder direction or iii Use SVP SVP to invert normaliz...

Page 17: ... exe is a tuning assistant utility that is provided to assist the user in finding the right combination of parameters This utility plots the motor s response The user can analyze this data to arrive at the right servo parameters for their servo system The application and documentation can be found on the CD ROM supplied with the MAXnet and on OMS web site found at www omsmotion com 2 8 3 MANUAL TU...

Page 18: ... variable is used to provide a constant output that will compensate for torque offset from the load So when the system should be stationary the necessary voltage will be sent to the amplifier to cause the motor to maintain position With the correct KO value the motor should successfully maintain a zero position KO is the offset coefficient used while in closed loop or open loop mode hold on HN You...

Page 19: ...asing the KI term increases the response time of your system The motion profile should also have a steeper slope as KI increases See Figure 2 9 and 2 10 below However as KI increases the system can also become unstable When the instability becomes unacceptable increase the 2KD parameter This will increase the dampening on the system s motion profile therefore reducing oscillation or ringing Contin...

Page 20: ...e of the secondary parameters that will help fine tune your system s performance These other variables are described in the subsequent steps The KV variable is used when tuning velocity controlled servos voltage mode servo amplifiers This is the velocity feedforward coefficient KV determines how closely the system follows the desired constant velocity portion of the motion profile By increasing th...

Page 21: ...ation and deceleration portions of the motion profile Increasing this term reduces the following error occurring during acceleration and deceleration of the system Although if KA is too large instability may occur The values for KA range from 0 to 249 99 FIGURE 2 13 The block diagram below describes the feedback loop that is taking place in the servo system Desired Step Response Actual Step Respon...

Page 22: ...in the motor shaft when you turn it then you may have to re adjust your PID filter Once you are satisfied with the static holding torque you could check for position error Send the command AC100000 VL5000 MR64000 GO With a 2000 line encoder this move would be equivalent to 8 revolutions of the motor After the move is complete check the position error by sending the RE and RP commands for the speci...

Page 23: ...and RDF is executed The RDF command does not restore communication parameters IP address port number and serial baud rate to factory default To restore the User Defined Default Parameters the command RDP is executed The following is a partial list of parameters that can be defined as part of the User Definable Power Up Default Parameters Over travel limit soft limit or hard limit Factory Default H...

Page 24: ...Amp 1 4 Amp 3 Amp 12 V 10 50 mA 100 mA 250 mA 12 V 10 50 mA 100 mA 250 mA CAUTION TABLE 2 4 POWER CONNECTOR J5 6 Pin Power Connector Signal Pin Signal Pin Signal Pin Ground 6 5 Volts 4 Ground 2 5 Volts 5 12 Volts 3 12 Volts 1 FIGURE 2 15 J5 POWER CONNECTOR ON MAXNET Maximum 5VDC power supply is 5 5 Volts If 5VDC power supply is higher than 5 5 Volts the MAXnet controller could be damaged J6 RS 232...

Page 25: ...POWER SUPPLY REQUIREMENTS GETTING STARTED MAXnet User s Manual 2 19 FIGURE 2 16 J5 POWER CONNECTOR ON MAXNET EXPANSION BOARD Pin 1 J5 POWER 1 2 3 4 5 6 ...

Page 26: ...GETTING STARTED POWER SUPPLY REQUIREMENTS 2 20 MAXnet User s Manual This page is intentionally left blank ...

Page 27: ...e 3 1 Simplified Data Dictionary of Figure 3 1 Event Notification New status flag data available Query command text response available Direct Commands Kill all motion Text Commands ASCII controller command strings Status Flags Axis done flags X Y Z T U V R S W K Axis over travel limit flags X Y Z T U V R S W K Axis encoder slip flags X Y Z T U V R S W K Command error flag Text Responses Query comm...

Page 28: ... is bit encoded as follows Axis done notification flags X_DONE_FLAG 0x00000001 Y_DONE_FLAG 0x00000002 Z_DONE_FLAG 0x00000004 T_DONE_FLAG 0x00000008 U_DONE_FLAG 0x00000010 V_DONE_FLAG 0x00000020 R_DONE_FLAG 0x00000040 S_DONE_FLAG 0x00000080 W_DONE_FLAG 0x02000000 K_DONE_FLAG 0x04000000 Axis over travel limit notification flags X_LIMIT_FLAG 0x00000100 Y_LIMIT_FLAG 0x00000200 Z_LIMIT_FLAG 0x00000400 ...

Page 29: ...en sending data over the communications channel Ethernet or RS 232 being used 3 5 DYNAMIC LINK LIBRARY The OmsMAXnet dll is the Motion Control Dynamic Link Library DLL that provides the means to create C C MFC or Visual Basic applications running under Windows NT 2000 or XP The DLL supports communicating to MAXnet via Ethernet or Serial port and supplies a set of wrapper APIs round the more common...

Page 30: ...w Figure 3 1 communication between the MAXnet controller and the host application is via the Ethernet and the DLL FIGURE 3 1 FUNCTIONAL COMMUNICATIONS FLOW MAXnet Motion Controller Application Software DLL DLL Function call Requested Data Ethernet Connection Stored Memory Data Text Responses Direct Commands Text Commands Event Notification Status Flags ...

Page 31: ...with an insert index that the controller uses to insert data into the shared memory region and a removal index that the host uses to remove data from shared memory region The controller places the capture data into the ring buffer at the location specified by the insert index and advances the insert index If after being advanced the insert index equals the removal index then the controller also ad...

Page 32: ...or a given bit means it did not trigger the capture event The motion controller contains a PowerPC processor which writes the data in the shared memory in big endian format If the host processor is not a big endian processor then appropriate byte swapping to correct for endian differences must be performed by the host processor when accessing the shared memory data ...

Page 33: ...net family of motion controllers is available in configurations from one to ten axes to manage combinations of servo and step motor systems The 100 pin MAXnet connector incorporates all of the signals of the MAXnet The MAXnet default configuration is as an open loop stepper controller for the number of axes ordered ...

Page 34: ... Limit 69 Y R Negative Limit 20 Z S Positive Limit 70 Z S Negative Limit 21 T W Positive Limit 71 T W Negative Limit 22 U K Positive Limit 72 U K Negative Limit 23 GROUND 73 GROUND 24 X V Home 74 X V Direction 25 Y R Home 75 Y R Direction 26 Z S Home 76 Z S Direction 27 GROUND 77 GROUND 28 T W Home 78 T W Direction 29 U K Home 79 U K Direction 30 GROUND 80 GROUND 31 X V Aux 81 X V Step 32 Y R Aux ...

Page 35: ... the encoder The logic of the encoder signals Phase A Phase B Index that constitute a true home condition is programmable Refer to Figure 4 3 Reference Command Reference Manual MAX Family l www omsmotion com EH HM HR HT KM and KR commands 4 4 GENERAL PURPOSE DIGITAL I O There are up to 16 general purpose digital lines that can be individually configured as either a TTL input or an active drive TTL...

Page 36: ...lation axes can be configured for servo motors open loop steppers stepper motors with encoder feedback or a combination thereof The servo output may be either unipolar analog 0 10V or bipolar analog 10 10 V Each axis configured as a servo motor uses one analog output Step pulse and direction outputs are active drive TTL level ouput signals which will wire directly into most driver inputs Auxiliary...

Page 37: ...NTIAL FIGURE 4 3 HOME LIMIT INPUT WIRING DIAGRAM FIGURE 4 4 DIGITAL I O WIRING DIAGRAM 2 2K MAXnet Home Limit Limit Switch Input 5V Step Direction Aux 5V Ground Enable Step Clock Direction Step Clock Direction Opto 5VDC Supply Opto Ground 2 2 K Ω 1 K Ω MAXnet Drive 2 2K MAXnet 5V TTL input TTL output Digital Input Output ...

Page 38: ...he MAXnet controller i e put the controlled motor in the home position The home switch input is a TTL level input signal If current limiting is required it should be done externally to the board Contact OMS Motion Inc technical support for assistance The MAXnet home switch input can be used to physically home a mechanical stage When this functionality is used the axis position counter will be rese...

Page 39: ...ACE MAXnet User s Manual 4 7 FIGURE 4 5 ENCODER HOMING STATE DETECTION FIGURE 4 6 ENCODER WIRING DIAGRAM FOR SINGLE ENDED INPUT SIGNALS Phase A Phase B Index Home Switch PHA PHB PHA PHB INDX INDX Ground Phase A Phase B Index MAXnet Encoder ...

Page 40: ...n the U axis and another axis if more than four axes of absolute encoding are needed Absolute encoders sharing the same I O output clocks have the requirement that the clock frequency is the same and the bits resolution is the same On the MAXnet expansion board the clock and clock signals are provided via the index and index signals for each axis not the I O ports Thus there is no sharing of clock...

Page 41: ...et breakout board for easier connectivity to the absolute encoder environment If the MAXnet expansion board was being used an additional IOMAXnet breakout board would be needed for connectivity to the absolute encoder environment FIGURE 4 7 CONNECTION OF AN ABSOLUTE ENCODER TO THE MAXNET VIA THE IOMAXNET BREAKOUT BOARD IOMAXnet phA phA IO0 IO1 Gnd clock CBL100A0 Absolute Encoder ...

Page 42: ...ection 8 Z S Phase A 42 GROUND 76 Z S Direction 9 Z S Phase B 43 ADC 0 ADC 2 77 GROUND 10 Z S Phase B 44 GROUND 78 T W Direction 11 Z S Index 45 X V Servo 79 U K Direction 12 Z S Index 46 GROUND 80 GROUND 13 U K Phase A 47 Z S Servo 81 X V Step 14 U K Phase A 48 GROUND 82 Y R Step 15 U K Phase B 49 U K Servo 83 Z S Step 16 U K Phase B 50 GROUND 84 GROUND 17 GROUND 51 Y R Phase A 85 T W Step 18 X V...

Page 43: ...MS Motion Inc MAXnet family controllers is supplied with the purchase of a MAXnet controller Refer to the text files on the disk for installation instructions and other information Some programs on the demo disk that include source code may be adapted for use in application programs that use OMS motion controls No license is required The software is also available on the OMS Motion Inc s web page ...

Page 44: ...HOST SOFTWARE INTRODUCTION TO MAXnet SUPPORT SOFTWARE MAXnet User s Manual 5 2 This page intentionally left blank ...

Page 45: ...rporate the KILL KL function Reference the SXK command This will allow the user to stop motion of the device All of these selections are temporary They can be made permanent by executing the APP command which assigns the current parameter values as the Power Up defaults Note The APP command should be used sparingly as it causes a write to the on board Flash Memory and there is a finite amount of t...

Page 46: ...STAND ALONE COMMANDS MAXnet User s Manual 6 2 This page intentionally left blank ...

Page 47: ...eparate command queues for each axis The command queue contains a list of addresses to execute The argument queue stores the parameters as applicable supplied with each command for the axis A command from the host may be expanded into several commands to the appropriate axis The GO command for example will expand into start ramp up constant velocity and ramp down commands The LS command will save ...

Page 48: ...SERVICE MAXnet User s Manual 7 2 This page intentionally left blank ...

Page 49: ... determines whether there is firmware currently executing on the MAXnet controller If firmware is currently executing then MAXnEupg proceeds to the next step of the upgrade process Otherwise MAXnEupg will report the error and exit The flash code blocks are erased If a failure occurs erasing flash the program is aborted The firmware file is sent to the controller and the controller programs the fla...

Page 50: ...via a command line option The default upgrade file name is maxn bin The default IP address is 10 40 30 61 The default TCP IP port selection number is 23 Examples Description MAXnEupg upgrades flash of the controller using maxn bin MAXnEupg I 10 40 30 62 upgrades flash of the controller using an IP address of 10 40 30 62 MAXnEupg f newmaxn bin upgrades using newmaxn bin file MAXnEupg p 22 upgrades ...

Page 51: ... line option The character following a character on the command line was not one of the valid command line options Valid options are B P F Invalid upgrade file for MAXnet serial number nnnnnn An upgrade file with a serial number lock installed did not match the MAXnet controller found Invalid upgrade file signature The upgrade file did not have the required signature of a valid upgrade file Unknow...

Page 52: ...ates that the firmware upgrade was successful and MAXnEupg has sent a command to the controller to restart This will start the controller running with the new upgraded firmware Sending nnn packets This message indicates how many packets are going to be sent to the controller flash when sending the new firmware to the controller Serial Number verified This message indicates that the upgrade file ha...

Page 53: ... firmware upgrade file prior to sending any commands to the controller to erase or program flash MAXnSupg determines whether there is firmware currently executing on the MAXnet controller If firmware is currently executing then MAXnSupg proceeds to the next step of the upgrade process Otherwise MAXnSupg will upload the maxn_uldr hex file to the controller ram and attempt to execute the uploaded co...

Page 54: ... MAXnSupg b 19200 upgrades flash of the controller at 19200 baud using the file maxn bin MAXnSupg f newmaxn bin upgrades flash using the file newmaxn bin MAXnSupg p 3 upgrades flash using comm port 3 with file maxn bin MAXnSupg h will display a help message Error messages Cannot open upgrade file file A problem occurred trying to open the upgrade file Controller ID query failed The controller did ...

Page 55: ...t selection The parameter supplied with the P command line option was not valid The valid range is 1 32 Invalid upgrade file for MAXnet serial number nnnnnn An upgrade file with a serial number lock installed did not match the MAXnet controller found Invalid upgrade file signature The upgrade file did not have the required signature of a valid upgrade file Unknown failure on packet ppp The control...

Page 56: ...icates that the firmware upgrade was successful and MAXnSupg has sent a command to the controller to restart This will start the controller running with the new upgraded firmware Sending nnn packets This message indicates how many packets are going to be sent to the controller flash when sending the new firmware to the controller Serial Number verified This message indicates that the upgrade file ...

Page 57: ...y defective units which are returned f o b Seller s plant Equipment or parts which have been subject to abuse misuse accident alteration neglect or unauthorized repair are not covered by warranty Seller shall have the right of final determination as to the existence and cause of defect As to items repaired or replaced the warranty shall continue in effect for the remainder of the warranty period o...

Page 58: ...LIMITED WARRANTY APPENDIX A MAXnet User s Manual This page intentionally left blank ...

Page 59: ...l to mailto sales omsmotion com Explain the problem and we may be able to solve it on the phone If not we will give you a Return Materials Authorization RMA number Mark the RMA number on the shipping label packing slip and other paper work accompanying the return We cannot accept returns without an RMA number Please be sure to enclose a packing slip with the RMA number serial number of the equipme...

Page 60: ...RETURN FOR REPAIRS APPENDIX B MAXnet User s Manual This page intentionally left blank ...

Page 61: ... level 50 duty cycle square wave that supports velocities of 0 through 4 194 176 pulses per second Encoder feedback functionality supports quadrature encoders up to 16 MHz and is used as the servo feedback as feedback for the stepper axes or as independent position feedback Encoder feedback is also used to provide slip and or stall detection The MAXnet has many user definable parameters that can c...

Page 62: ... position the following commands could be used AM VL5000 5000 5000 AC50000 50000 50000 MT1000 2000 3000 GO ID The controller would calculate the relative velocities required to perform a straight line move from the current position to the desired absolute position so that all axes arrive at their destinations at the same time The following demonstrates cutting a hole with a 10 000 count radius usi...

Page 63: ...ls Input sense low or high true selectable by command input for each axis Accuracy to 1 encoder count User definable I O Up to 16 bits of user definable digital I O The 16 bits are user configurable and are configured as 4 inputs and 4 outputs on Analog inputs Two independent analog inputs 16 bit resolution 10V Analog outputs servo 10V and 0 to 10v max One per axis plus two general purpose all are...

Page 64: ...og output with 16 bit 10 VDC input in addition to axes output 4 Channels of general purpose analog input with 16 bit 10 VDC Motion Feedback Each axis had an incremental encoder input Quadrature Encoder Feedback up to 16 MHz on all encoder inputs Two 12 bit Absolute SSI encoders by default optional 32 bit Absolute encoders available on each axis Sophisticated Control Functionality 16 bit DAC analog...

Page 65: ...ROUND 13 U K Phase A 47 Z S Servo 81 X V Step 14 U K Phase A 48 GROUND 82 Y R Step 15 U K Phase B 49 U K Servo 83 Z S Step 16 U K Phase B 50 GROUND 84 GROUND 17 GROUND 51 Y R Phase A 85 T W Step 18 X V Positive Limit 52 Y R Phase A 86 U K Step 19 Y R Positive Limit 53 Y R Phase B 87 GROUND 20 Z S Positive Limit 54 Y R Phase B 88 IO1 IO9 21 T W Positive Limit 55 Y R Index 89 IO3 IO11 22 U K Positiv...

Page 66: ...r Definable 2 4 3 6 3 3 8 MAXnet 4000 4 User Definable 2 5 4 8 4 4 8 MAXnet 5000 5 User Definable 2 6 5 10 5 5 8 MAXnet 6000 6 User Definable 4 8 6 12 6 6 16 MAXnet 7000 7 User Definable 4 9 7 14 7 7 16 MAXnet 8000 8 User Definable 4 10 8 16 8 8 16 MAXnet 9000 9 User Definable 4 11 9 18 9 9 16 MAXnet A000 Ethernet RS 232 10 User Definable 4 12 10 20 10 10 16 CBL58 3M 100 Pin 12 ft cable IODnet Ter...

Page 67: ...OMAXnet 4 10 M MOTOR WIRING DIAGRAMS 2 7 Q QUADRATURE ENCODER WITH TTL LEVEL OUTPUTS 2 3 S SERIAL COMMUNICATION PARAMETERS 2 1 SERVO UPDATE RATE 2 11 STAND ALONE COMMANDS 6 1 STATUS WORD 1 FLAG REGISTER WORD ACCESS OFFSET 0xfc0 3 5 V VOLTAGE MODE 2 12 W WIRING DIAGRAMS 4 4 WORD ACCESS OFFSET 0xfc0 STATUS WORD 1 FLAG REGISTER 3 5 ...

Reviews: