Auto- and Handmode

With the available commands for HMI, it is not only possible to read data from the board, but it is also possible to control the board. For example; it is possible to set a digital output pin with the command FDO (Force Digital Output). Normally the board is operating according to the way it is programmed. This is called the automatic mode. When forcing pins to a fixed status by the HMI, the board is no longer in automatic mode[1]. These pins are now in “Hand”-mode and are no longer influenced by the FSM. Keep in mind that forcing pins could influence the behaviour of the FSM. It is possible by the RTA (Return To Automatic) command, to set defined pins in automatic mode again. Of course the fact that there are one or more forced pins on the board is known and presented in the messages returned by the board on the GMI command (Get Meta Information).   

Sometimes it can be necessary to give an input pin a value other then the status of the field, for example in order to force the FSM to a next state. Practical examples are; the open/closed status of valves – ignoring the proximity switches; the operation mode of a motor – when started ignore the auxiliary contact of the contactor; overrule a safety switch – which is definitely not preferable. With the command MDI (Mask Digital In) and MAI (Mask Analogue In) it is possible to overrule the status of the connected pin. This principle is called masking. So the FSM is no longer influenced by the field but by the value given in the MDI/MAI command. It is possible to connect the field status again by the command RMM (Remove Mask). Be aware that events caused by masking, e.g. “digital rising” or an “analogue value between” is handled as programmed in the FSM. The status of the board (automatic/hand) is not influenced by masking of pins. See also the GMI command. 

Another way to influence the board is by markers. They can be declared in the declaration part of the sketch. A marker is only virtual and has no pin connected. A marker can be read/write by both HMI and the board. This is up to the programmer. As earlier mentioned, there are three types of markers; digitals, analogues and text strings types. A marker can be any of these types in the standard. So when a markers is declared it can be used for one of these datatypes. In fact, when a marker is used in communication with HMI, the datatype is determined by HMI; this is done by the choice of the  ContextMenuStrip used in the properties of the control (applies only when Visual Studio is used for HMI).   

[1] All functionality is running like programmed, unless the board is programmed to act in another way, when it is no longer in automatic mode.