# Ignition HMI as pendant replacement?

**URL:** <https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833>\
**Category:** Ignition\
**Tags:** perspective\
**Created:** [May 17, 2023, 12:32pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833 "2023-05-17T12:32:41Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Austyn\_Larkin](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Austyn\_Larkin](https://forum.inductiveautomation.com/u/Austyn_Larkin)\
**Post date:** [May 17, 2023, 12:32pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/1 "2023-05-17T12:32:41Z")

</div>

Hi all,

We're looking to use Ignition as a potential replacement to a physical pendant for manual machine control. Has anyone attempted or looked into this? We've got concerns about latency and usability as it would be from a tablet on a WiFi connection. Safety isn't a huge concern, just usability in terms of fine-grain control and latency (e.g. moving a motor a specific distance by holding a button down.) Anyone ever try this or have any feedback as to why this is a good/bad idea? Thanks!

---

<div class="post-metadata">

**Author:** ![Kevin.Herron](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/kevin.herron/32/7259_2.png) [@Kevin.Herron](https://forum.inductiveautomation.com/u/Kevin.Herron)\
**Post date:** [May 17, 2023, 12:47pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/2 "2023-05-17T12:47:36Z")

</div>

> [@Austyn\_Larkin](#):
>
> (e.g. moving a motor a specific distance by holding a button down.)

Perspective doesn't even have a momentary button. They are sketchy even in Vision, unless you have the right logic in the PLC as well.

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [May 17, 2023, 12:49pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/3 "2023-05-17T12:49:44Z")

</div>

> [@Austyn\_Larkin](#):
>
> Safety isn't a huge concern

> [@Austyn\_Larkin](#):
>
> (e.g. moving a motor a specific distance by holding a button down.)

I would say that these two statements are contradictory.

It is difficult to create a true "momentary" button for "jog" operations.

See here:

> [@Perspective Jog Button On Touch Screen](https://forum.inductiveautomation.com/t/perspective-jog-button-on-touch-screen/73691/3):
>
> That would be a "Momentary" button. (Did you mean "jog" instead of "job"?) It is very difficult to make reliable momentary buttons on any platform, though it is possible (not easy) with Vision. IA doesn't offer a built-in momentary button on Perspective because they probably haven't found a reliable way to do it, yet. Consider other control schemes.

Also, do a search for [stuck momentary button](http://forum.inductiveautomation.com/search?q=stuck%20momentary%20button) to learn about the difficulties such a control scheme can present.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 17, 2023, 1:19pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/4 "2023-05-17T13:19:12Z")

</div>

> [@Austyn\_Larkin](#):
>
> potential replacement to a physical pendant

I do this with a few customers.

With Vision, and only with Vision. (No tablets or other devices that use mobile operating systems.)

> [@Austyn\_Larkin](#):
>
> We've got concerns about latency

Yes, this is quite the problem. I created [an Ignition module](https://inductiveautomation.com/moduleshowcase/module/automation-professionals-llc-ethernetip-class-1-communications) some years ago specifically to support an I/O protocol (EtherNet/IP Class 1 UDP) that offers very low latency. (It can do much more than that, but that was its foundational purpose.)

> [@Austyn\_Larkin](#):
>
> moving a motor a specific distance by holding a button down

> [@Kevin.Herron](#):
>
> unless you have the right logic in the PLC as well.

And this. All of the various solutions involve some kind of code or I/O configuration in the PLC.

{ @lrose already linked the background material. }

---

<div class="post-metadata">

**Author:** ![kyler.kamyszek](https://avatars.discourse-cdn.com/v4/letter/k/a4c791/32.png) [@kyler.kamyszek](https://forum.inductiveautomation.com/u/kyler.kamyszek)\
**Post date:** [May 17, 2023, 1:31pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/5 "2023-05-17T13:31:47Z")

</div>

An option for using Ignition as an HMI that I've done is using some sort of safety 3-way enabling device with hard push buttons on it, then use Ignition to configure what you want the buttons to control, jog speed, etc.

Euchner has some nice options for multiple aux buttons.

> **[Enabling switch ZSM | EUCHNER](https://www.euchner-usa.com/en-us/products/enabling-switch/enabling-switch-zsm/)**
>
> Enabling switch ZSM: Ergonomic design, Wide variety of configurations, Tactile and optical coverage, Single-hand operation, The ZSM is more than just a conventional enabling switch. Due to its modular design a large number of additional functions can...

---

<div class="post-metadata">

**Author:** ![calimero100582](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/calimero100582/32/18630_2.png) [@calimero100582](https://forum.inductiveautomation.com/u/calimero100582)\
**Post date:** [May 17, 2023, 2:27pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/6 "2023-05-17T14:27:36Z")

</div>

I know some don't like momentary button, but I am thinking to implement something like this, when it is not possible to change the PLC

- Create a memory tag with a Timestamp as value;
- Perspective goal, while a button is pressed, is to update this Timestamp, like every 50ms
- When the Timestamp is updated and command tag is 0, 1 is written to command tag
- As long as the command tag is 1, gateway check the Timestamp and set the command tag to 0, if the timestamp is getting older than 100ms or something like that
- When button release, reset command tag to 0, and timestamp

Not sure of the implementation yet  
Would prefer to set the timestamp in the PLC, so the PLC stops on communication loss  
And I am still not sure of the hardware reliability to release from any touch screen, so I prefer mouse control

---

<div class="post-metadata">

**Author:** ![Austyn\_Larkin](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Austyn\_Larkin](https://forum.inductiveautomation.com/u/Austyn_Larkin)\
**Post date:** [May 17, 2023, 2:28pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/7 "2023-05-17T14:28:30Z")

</div>

That's exactly how I was thinking about doing it too! A little heartbeat of sorts.

Thanks so much for all the feedback everyone.

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [May 17, 2023, 2:57pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/8 "2023-05-17T14:57:02Z")

</div>

> [@calimero100582](#):
>
> when it is not possible to change the PLC

> [@calimero100582](#):
>
> Would prefer to set the timestamp in the PLC, so the PLC stops on communication loss

It's not possible in this scenario to change the PLC, I presume that includes adding logic to maintain a timestamp.

> [@calimero100582](#):
>
> As long as the command tag is 1, gateway check the Timestamp and set the command tag to 0, if the timestamp is getting older than 100ms or something like that

And what happens when Ignition sees the command tag value as 0, but the PLC sees it as 1 because the write never made it to the controller? Read after write doesn't work because there is a loss of comms and the PLC is still moving the equipment.

There are very good reasons why "some don't like momentary buttons". The long and short of it is, if you can't make modifications to the PLC, and the Client needs this functionality, you should walk away from the job. They're asking for an accident.

I would pass on any request to implement a jog function from Perspective (as it is now) no matter the level of safety concern with the project. I already avoid momentary buttons on HMI's for any hardware interaction even in vision.

---

<div class="post-metadata">

**Author:** ![calimero100582](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/calimero100582/32/18630_2.png) [@calimero100582](https://forum.inductiveautomation.com/u/calimero100582)\
**Post date:** [May 17, 2023, 3:11pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/9 "2023-05-17T15:11:47Z")

</div>

that is why I would prefer the Timestamp to be in the PLC. The logic to reset the command tag value must be in the PLC also

---

<div class="post-metadata">

**Author:** ![Austyn\_Larkin](https://avatars.discourse-cdn.com/v4/letter/a/59ef9b/32.png) [@Austyn\_Larkin](https://forum.inductiveautomation.com/u/Austyn_Larkin)\
**Post date:** [May 17, 2023, 3:12pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/10 "2023-05-17T15:12:56Z")

</div>

So if I understand correctly, basically only jog the motor as long as the PLC is being sent updated timestamps?

---

<div class="post-metadata">

**Author:** ![calimero100582](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/calimero100582/32/18630_2.png) [@calimero100582](https://forum.inductiveautomation.com/u/calimero100582)\
**Post date:** [May 17, 2023, 3:13pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/11 "2023-05-17T15:13:12Z")

</div>

yes

---

<div class="post-metadata">

**Author:** ![calimero100582](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/calimero100582/32/18630_2.png) [@calimero100582](https://forum.inductiveautomation.com/u/calimero100582)\
**Post date:** [May 17, 2023, 3:41pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/12 "2023-05-17T15:41:55Z")

</div>

> [@lrose](#):
>
> I already avoid momentary buttons on HMI

Not sure how to avoid it is some circumstances. In my case, I work with rollforming machine, that have multiple axis and motors that may need to be controlled independently, and I don't see how I could fit over 60 buttons to jog each of the 30 something axis and motors forward and backward on a single panel

At least, on an HMI, we can organize those button in pages

---

<div class="post-metadata">

**Author:** ![lrose](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/lrose/32/62724_2.png) [@lrose](https://forum.inductiveautomation.com/u/lrose)\
**Post date:** [May 17, 2023, 3:57pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/13 "2023-05-17T15:57:53Z")

</div>

> [@calimero100582](#):
>
> Not sure how to avoid it is some circumstances.

Avoid doesn't mean, absolutely never. It just means look for a better way if possible. If a virtual jog function is required then a proper handshaking schema must be employed to insure that the PLC can detect a loss of comms to the SCADA system and discontinue the motion.

For equipment with multiple axis, I employee a jog select button along with a position increment (if the axis is a motion axis). If a loss of comms occurs then the position stops incrementing and motion stops. A momentary button is not the control mechanism for the jog.

Otherwise, I utilize a rolling count that is sourced from the PLC and written to another tag via the SCADA system. If the two get out of sync then all motion is stopped by the PLC.

The network traffic and latency make this unreliable at best in Perspective. I would not want to put my name and reputation on the line if it failed. Perspective as it stands now, IMHO, is a no go for jog functionality with purely momentary buttons.

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [May 17, 2023, 5:21pm UTC](https://forum.inductiveautomation.com/t/ignition-hmi-as-pendant-replacement/73833/14 "2023-05-17T17:21:20Z")

</div>

> [@calimero100582](#):
>
> and I don't see how I could fit over 60 buttons to jog each of the 30 something axis and motors forward and backward on a single panel

A good solution is to have one hard-wired jog button and let its function be determined by the HMI. So, your HMI has the axis select radio buttons (which are by definition mutually exclusive) and a forward and reverse radio buttons (also exclusive).

If the additional jog button is too much then toggle normal / jog mode on the HMI and use the hard-wired start button for start / jog depending on selected mode.
