cancel
Showing results for 
Search instead for 
Did you mean: 
SOLVED

Usage of monoflop

Usage of monoflop

HmiGuide
Community Moderator
Community Moderator

As far as I understand it, the WebIQ monoflop feature can be used to detect communication interruptions, e.g. when a motor is jogging.

- How does this have to be configured in WebIQ?
- Is there an example?
- How do you recognize the communication interruption in the PLC?
- A brief explanation of the technical background would also be very helpful to understand how it is working.

8 REPLIES 8

webiq-sk
Frequent Contributor

The monoflop feature is meant for jogging, not for detecting communication interruption. From the manual:

  • Monoflop Activates the monoflop function, which means that the value "1" (true) or the on-value will be written to the connected item continuously when the button is kept pressed
  • Monoflop Interval Defines the interval in which to write the value to the connected item if the monoflop function has been enabled"

Essentially it's simply JavaScript code in the frontend that writes the item continuously as long as the button is pressed, nothing fancy. However, when the connection to the item on the PLC (OPC-UA server) is interrupted, the widget will be locked automatically anyway.

HmiGuide
Community Moderator
Community Moderator

I understand the following for monoflop:

  • Press jog button: set value = 1 (true) => Jog starts
  • While pressed: set value = 1 (true) which makes no difference for the PLC, because value stays at 1. So what is the reason for this?
  • Release jog button: set value = 0 (false) => Jog stopps

 

HmiGuide
Community Moderator
Community Moderator

@webiq-sk Before I created this entry I found the documentation you listed above, but I says nothing to me. I created a test program:

  • 1 Bool, 1 Integer PLC variable
  • enable monoflop feature
  • when I press a button with enabled monoflop the variable is set = 1 and  stay on 1, even when the button is released.
    => Jog is started but not stopped

So it is totally unclear how to use the monoflop in WebIQ and what should be the effect/advantage to use it. 

webiq-sk
Frequent Contributor

@HmiGuide Monoflop is simply an option to write the value every interval. Of course the value remains at "1", but it is sent to the server - this only makes sense if you have a corresponding handling on the OPC-UA server that receives the value write and then sets another value internally for example. Such for moving a part of the machine whenever the value is written.

Please keep in mind that we're a web HMI - this means that you always have to handle intermittent disconnects because of some network issues. As such it needs to be prevented that we send "jog" and a "stop jogging" (if we would implement it like this) will not be received because of an issue somewhere on the network (which is outside of the scope of any software) and potentially harming someone if a part continues moving just because of a network issue. Therefore, no "jog" and "stop jog" is available and this has to be handled by the OPC-UA server. So whenever no new write is received the corresponding part of the machine will not be moved anymore.

Please don't forget that even though ctrlX has a built-in OPC-UA server this may not be the case for everyone using WebIQ and technically the OPC-UA server and WebIQ can be located at different parts of the planet so network issues can occur at anytime potentially and would have to be handled by any network software.

HmiGuide
Community Moderator
Community Moderator

@webiq-sk do I understand it correct?

  • To use the monoflop feature you must define a function/methode/or something else in OpcUa server.
  • Without that adaption in the OpcUa server you can't use this feature.

Yes, the network issues are the reason, why I want to know how the monflop feature is working and if I can use it. 

webiq-sk
Frequent Contributor

As I wrote before WebIQ simply sends the same value as long as you keep the button pressed in the given interval. As WebIQ can only control what's happening in the browser it's up to the user to adapt the OPC-UA server if it doesn't support something like this out-of-the-box.

HmiGuide
Community Moderator
Community Moderator

Result

  • This feature could not be used with ctrlX, because ctrlX OpcUa server does not support changing OpcUa variables in the server
  • Even if the ctrlX OpcUa Server would support this, the recommendation from BoschRexroth Monoflop is: not to use it, because in addition to the HMI and PLC project, there is a third place (the OpcUa Server) involved. This makes communication unnecessarily difficult to understand and maintain.

The iq-heartbeat widget can be used to stop jogging when communication is interrupted. It can send a heartbeat counter to the PLC and evaluate a heartbeat counter of the PLC. This allows a communication interruption to be detected and reacted to on both sides.

webiq-sk
Frequent Contributor

Please note that if you have the HMI open on multiple browsers at the same time and use the heartbeat widget to actually "ping" the OPC-UA server you cannot detect, if one is no longer available - this only works if you always have a single display only that displays the heartbeat widget and sends a "ping" to the PLC. Because one browser might have a network issue while another does not.

Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist