100% Employee Owned, Founded 1954

855.889.0092

100% Employee Owned, Founded 1954

855.889.0092

100% Employee Owned, Founded 1954

855.889.0092

Controlling Multiple Axes on a Parker PAC Using a Logitech F710 Controller

Ben Bishop | May 9th, 2016

Parker’s PAC IEC61131-3 development environment (Parker Automation Manager or PAM) is built on 3S Software’s CODESYS 2.3 IDE. Depending on the model of PAC ordered, the controller supports not only basic point to point motion, multi-axis interpolation, gearing, camming, forward and inverse kinematics, as well as GCode motion from CAD files (in dxf format). Also included is an on board Visualization package for creating user defined GUI screens for testing, debugging, and controlling code.

Here at Cross Company Motion Solutions, we have developed a demo system using a full featured PAC controller that includes three 200 watt Parker “PDrive” Axes. We have also dedicated much “bench” time to exploring the different features of the PAC to better assist customers in solving applications and identify niches where this controller may be applied.

To demonstrate the ease of integrating third party products with the PAC, we decided to connect a Logitech F710 Gamepad (LGP) using its supplied USB interface (receiver). Our goal was to determine the degree of difficulty required to interface the two devices and allow for basic motion control capabilities.

How We Developed It

Currently Parker does not provide a Software Developer Kit (SDK) for the PAC. Instead we developed a VB.Net application using Microsoft’s Visual Studio to interpret the LPG’s buttons and joystick data. Microsoft includes .NET Frameworks to interface to their Xbox 360 game controller which is functionally the same as the LGP.

The application runs on an external PC and connects to the PAC via a Modbus/TCP client that utilizes a Modbus Client library that we had on hand. In the VB.Net application, we created a simple GUI (Window) in order to monitor the LGP and Modbus connections for debugging and demonstration.

The Window includes a Settings menu with an “Always On Top” selection to ease debugging etc. The button states are displayed, as well as the XY positions of the 2 joysticks. The Modbus connection’s IP address is fixed at the default for Port X2 on the PAC, however this could be made user-adjustable.

The Modbus connection status, a connect/re-connect Button, and the value for a Heartbeat are also displayed. The Heartbeat is a continuously changing (increments each Modbus cycle) value that the PAC uses to monitor the connection.

The PAC is configured as a Modbus Slave and left at the default 10 Words In/Out.

How It Functioned

The application takes each joystick’s XY position data (+/- 1.0 Decimal), multiplies it by 10,000, and sends it as a 16 Bit Integer value. The Watchdog value is sent as a 16 Bit Integer. The Button Statuses are logically OR’d into a 16 Bit Word and sent.

The joysticks have a small dead band (0.0 value) around the center positions, which is a nice feature as no additional code is required.

We mapped the LGP Buttons as follows:

  • Blue (X) Toggles whether the LGP has control
  • Yellow (Y) Reinitiates the Axes
  • Green (A) Enables the Axes
  • Red (B) Disables the Axes

We mapped the LGP joysticks as follows:

  • Left (Left/Right) Axis X Velocity
  • Left (Up/Down) Axis Y Velocity
  • Right (Left/Right) Axis Z Velocity
  • Right (Up/Down) Axis Theta Velocity

In the PAC program (POU), the incoming joystick position values are converted to REAL numbers by dividing by 10000.0 then multiplied by a maximum speed value (visMaxSpeed). The Acceleration/Deceleration values are set high for crisp response to the commands. The Axes are controlled in LGP mode via MC_ControlAxisByVel Function Blocks.

If the LGP WatchDog (iGPHeartBeat) value was constant for more than a set time (50 ms), the PAC reverted back to local control and stopped the axes.

The observed response to the joystick inputs was near real time and was acceptable for use in an actual application. Even though the LGP is not an industrial type device, it would be fine in a lab or other type of similar environment.

This code was added to an existing application that included a multi-axis Interpolator that we have developed, as well as a GCode executor. LGP status and settings were added to the basic Visualization that we had created to test and debug our Interpolator./p>

In Conclusion

It was interesting to see what can be achieved with a < $50.00 game controller and some creative coding. It should be noted that all of the software used for this experiment was freely available including the Parker Application Manager (PAM) used for the PAC. 

Two day UR collaborative robot core training class dates for 2019 and 2020

Cross Company is committed to helping you use your Collaborative Robot solution more effectively. Our goal is to highlight unique features, application examples, and provide guidance on how to implement them in your projects further decreasing your installation time and increasing your return on investment. Cross Company is a UR factory authorized training center and

Read More »
Cross Group - Robotics and Machine Automation

Are You Prepared for Transitioning from 3G to 4G?

July 8th, 2019 Are you prepared for the sun to set on 3G Networks? Cross Company is here to help you make the switch from 3G to 4G. We can help with cellular and IoT solutions from Red Lion, Sixnet, and Phoenix Contact. Please reach out to us and take advantage of our expertise! Red

Read More »
Cross Group - Robotics and Machine Automation

Soft Robotics Article – Food Safety for the Baking Industry

Food safety is a critical factor for the food and beverage industry. Whether you are a food producer or packager, you not only need to manufacture product quickly while maintaining quality, but you need to ensure that your product is safe for consumption. Take a look at the latest article from our provider Soft Robotics. Read

Read More »
Scroll to Top