FB_DALI302AbsoluteInputDevice
The function block is used for the configuration and operation of an instance of a DALI control device that supports Part 302 (absolute encoder).
If necessary, the output value can also be queried immediately via the variable bQueryInputValue, even if the corresponding instance is not enabled.
The output variable nInputLevel is written depending on the specified resolution nResolution (application and vendor-specific).
The existing parameters can be overwritten by changing the properties listed below. All parameters are written to the DALI control device by a positive edge at bInitialize and stored there.
The outputs with the output values of the DALI device only contain valid values if the function block was executed without errors (bError = FALSE). If the output bError = TRUE, the outputs with the output values must not be evaluated.
Set the times so that as few events as possible are sent. If too many events are sent, this can have a negative effect on the behavior of the application. |
The function block cannot be used when using the KL6811. |
Inputs
VAR_INPUT
bInitialize : BOOL := FALSE;
nShortAddress : BYTE := 0;
nInstanceNumber : BYTE := 0;
nResolution : BYTE := 1;
bQueryInputValue : BOOL := FALSE;
bGetInputNotifications : BOOL := TRUE;
nOptions : DWORD := 0;
END_VAR
Name | Type | Description |
---|---|---|
bInitialize | BOOL | The configuration of the DALI control device is started by a positive edge at this input. During this time no DALI commands are processed. |
nShortAddress | BYTE | Short address (0…63) of the DALI control device. |
nInstanceNumber | BYTE | Number of the instance (0…31) of the DALI control device to be addressed. |
nResolution | BYTE | Vendor-specific resolution (1...64) of the input value. The value specifies the number of bits with which the input value is scaled. |
bQueryInputValue | BOOL | The state of the input is queried immediately by a positive edge at this input. A query is possible even if the instance is disabled via the bEnableInstance property. |
bGetInputNotifications | BOOL | A TRUE at this input causes the received Input Notification Events to be output at the output. |
nOptions | DWORD | Reserved for future extensions. |
Outputs
VAR_OUTPUT
bError : BOOL;
ipResultMessage : I_TcMessage;
bInitializing : BOOL;
bReadingInputValue : BOOL;
nInputLevel : BYTE;
END_VAR
Name | Type | Description |
---|---|---|
bError | BOOL | This output is switched to TRUE if an error occurs during the execution. Further information about the error can be queried via the variable ipResultMessage. The output is set to FALSE again as soon as bBusy switches to TRUE. |
ipResultMessage | I_TcMessage | Interface pointer (see error evaluation) that can be used to obtain detailed information about the processing of the function block (see runtime messages). The interface pointer is valid after bBusy has changed from TRUE to FALSE. |
bInitializing | BOOL | The output is set as soon as the initialization of the DALI control device has been started, and remains active until all DALI commands have been executed. |
bReadingInputValue | BOOL | The output is set as soon as the manual reading of the input has been triggered. |
nInputLevel | BYTE | Outputs the measured value of the resistance measurement. |
Properties
All parameters that are written to the DALI control device via bInitialize are available as properties.
Name | Type | Access | Initial value | Description |
---|---|---|---|---|
bEnableInstance | BOOL | Get, Set | TRUE | The instance can be enabled or disabled on the DALI control device. If this property is FALSE, sending events from this instance is disabled. However, the actual value of the instance can still be queried via the input bQueryInputValue. |
eEventPriority | E_DALIEventPriority | Get, Set | Middle | Setting of the event priority. |
nReportTimer | BYTE | Get, Set | 0 | Time (0…255 s) after which the pending event of the measurement is repeated if no other event has occurred in the meantime. |
nDeadtimeTimer | UINT | Get, Set | 100 ms | Dead time (0...12750 ms) to ensure that not too many events are sent in succession. An event is only sent after expiry of the dead time timer. The dead time timer is restarted each time an event is sent. |
ipDALICommunication | I_DALICommunication | Get, Set | 0 | Interface pointer to the communication block (see Transfer of the reference to the communication block). |
Examples of the setting of the resolution:
Simple switch (make contact)
nResolution := 1;
When the contact is open, the output has the following value:
nInputLevel := 0;
When closed, the output has the following value:
nInputLevel := 1;
Switch with two positions
nResolution := 2;
When contact 1 is closed, the output has the following value:
nInputLevel := 1;
When contact 2 is closed, the output has the following value:
nInputLevel := 2;
Switch with two positions and a neutral center position:
nResolution := 2;
When contact 1 is closed, the output has the following value:
nInputLevel := 1;
In the center position, the output has the following value:
nInputLevel := 0
When contact 2 is closed, the output has the following value:
nInputLevel := 2;
Rotary switch:
When using a rotary switch with latching positions, the resolution nResolution depends on the number of available positions.
The output of the value nInputLevel also corresponds to this.
Slide resistor, potentiometer (absolute encoder):
When using an absolute encoder, the resolution nResolution and the output of the variable nInputLevel are vendor-dependent.
Requirements
Development environment | Required PLC library |
---|---|
TwinCAT from v3.1.4024.11 | Tc3_DALI from v3.5.0.0 |