example solution for a single 2 axis Joystick used to control dual tracks on a machine like a dozer

Andy 3 years ago in IQANdesign updated by Ryan Bland 747 1 year ago 7

Hi People

I'm relatively new to IQAN but have been programming industrial PLC's for years. A few years back I used a dual axis 0.5 - 4.5v DC joystick and an IDEC PLC to create, among other solutions on the machine a drive motor tracking system for a large machine that is about the size of a D9 dozer that used a single joystick to control fwd-rev and turning. I may not be looking that well but I cant see any example of a single 2 axis joystick that is used to control a tracking system, rather all the examples provided with the software seem to have a separate input controller for each side (like an excavator) which is pretty simple to achieve, unlike the more complex (I think) math required to handle the 2 axis to 2 separate pump dual direction control.

Can anyone point me at an example I can use for this use case?

On this same machine I used a pair of modbus over RS485 ultrasonic height measuring transducers to control the machines working head height. Does anyone know of a set of ultrasonic height transducers that can run natively over canbus, or a modbus to canbus converter that I can use to deal with that function from the IDEC solution using IQAN?

The solution I have in place has heaps of individual inputs and outputs and hence the wiring on the machine is complex and of a single hub and spoke style rather that the more distributed multiple hub and spoke that a multi controller iqan solution would provide. Ideally I would like to look at moving from the IDEC PLC solution (Not that there is any issue with the IDEC controller, just the whole machine wiring complexity)

Thanks for any guidance you can provide


Andy Saywell

Since IQAN calculates all inputs and outputs as percentages the math is quite simple.

X is forward speed (-100% to +100%)

Y is turning (-100% to +100%)

If the operator is turning left Y -10% the left track speed should be X+K*X*-10%

The right track speed should be X-K*X*-10%.

K to be determined by testing or measurement on the old machine.

Then you might want to add some filters or BWL and maybe make the response slower near center.


Thank you for your advice. I was able to create a suitable solution that at this stage is working fine in simulate. The complexity i found was more around turning without forward motion (Joystick sideways movement without a forward or reverse component) , that is there are 2 alternates that can be used, pivot, which means 1 track is moving forward and the other equally in reverse so that you pivot around the machine physical center. The alternate is that one track moves and the other remains still so that the pivot point moves to the center of the not moving track. For our specific use case (tracked Tree mulching) you need both options and a way to switch between them on demand.

As for the sensitivity thing I just introduced a logarithmic function where via a parameter you can choose the log power to apply. That for me allowed say 10% of available pump control to require the first 30% of the available Joystick motion away from the center.

It took me about a days work to make it all work as my first project....

Thanks for taking the time to offer your advice



Hi Andy - Any chance you could share your logic via DM - Im trying to the same thing but am  at a loss - Pretty much a Noob 

Sure.....The system that  I developed for this need is attached.

Its changed a lot since this was created, but because of interactions with other parts of the design and the fact that its displayed on remotely connected displays has a bunch of J1939 stuff that would just confuse things (even more than this will).

Given I knew very little at the time about iqan then I'm sure there's much better and simpler ways to do things ( If there's a complex way and a simple way...Ill try to over complicate the complicated way.... <sigh!>) than the way I did but at the end this pretty much works so..... learn and improve as you see fit

For clarity this system has the beginnings of an autopilot where  hitting a switch with a joystick held in a position will establish that position as the new joystick center...so the machine will continue to do as it was when the autopilot engage switch was hit. The Deadmans switch has to be pressed regularly so that it continues to autopilot, or it will revert back to center = no movement in any direction.... This may well be a dangerous function for your purposes and I'm sure will be in need of a risk review process.....Its not at all needed to just get basic control in place..... but I couldn't be bothered removing it here to share.... Its not enabled in my current design ....yet...

To use this you'll need IQAN design and IQAN Simulate

.Tracking test.idsx

Hey Andy Thx very much for the File , what version of design Do you have ? I’m running 6.06 and it says the G11 has a newer version and won’t open the file? I haven’t updated since 04/21 - I may need to do an upgrade ? 

Sorry I run 6.08

just download 6.08 and run it in eval mode...if needed and once open you can copy/paste all the channels into 6.06 if you want....

But for me....considering how much time and effort your going to put into learning this...why cheap out on the upgrades, which don't cost that much per year.....just the hassle of doing what I suggest above probably will consume 1/2 the cost of the upgrade in lost time......

Hi Andy - Me again - thx very much for the file - So your Software has got me Stummped - do you perhaps just have the X/Y logic without the Auto Pilot - I have been trying to remove the Autopilot from the code to no avail , Sorry to hassel you with this again