User Tools

Site Tools

한국어

comfilehmi:hmieditor_address:index

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
comfilehmi:hmieditor_address:index [2019/01/09 13:37]
COMFILE Technology [Data Types for Word Addresses]
comfilehmi:hmieditor_address:index [2022/04/22 12:50] (current)
COMFILE Technology [Data Types for Word Addresses]
Line 1: Line 1:
 +====== Device Addressing ======
 +
 +In this section //device// refers to the PLC or MCU that is connected to the ComfileHMI hardware.
 +
 +The ComfileHMI needs to know the address of the device in order to communicate with it.
 +
 +In each widget'​s property page, the device'​s address space can be configured.
 +
 +{{ :​comfilehmi:​hmieditor_address:​device_address.png?​nolink |}}
 +
 +Pressing the //..// button will open the following window where device and device address can be bound to the widget.
 +
 +{{ :​comfilehmi:​hmieditor_address:​addressinput.png?​nolink |}}
 +
 +The address value must expressed in the format ''​DeviceID:​Address''​.
 +
 +  * **If the address is left blank, there will be no communication with the device**
 +
 +===== Data Types for Word Addresses =====
 +
 +Word Addresses can be used to read/write data 16-bit signed and unsigned integers, 32-bit signed and unsigned integers, and 32-bit floating point values.
 +
 +{{ :​comfilehmi:​hmieditor_address:​datatypes.png?​nolink |}}
 +
 +The following code can be used in CUBLOC devices to store floating point values in the Modbus registers. ​ The example below stores the floating point value //Value// into the two adjacent 16-bit registers //D0// and //D1//.
 +
 +<code xbasic>
 +#include "​MSB6XX"​
 + 
 +Opencom 1,​115200,​3,​1024,​1024
 +Set Modbus 1,1,20
 +
 +Set Ladder On
 +
 +Dim Value As Single
 +Value = 3.14
 +Dim Bytes As Long
 +Bytes = 0
 + 
 +Do
 +   Value = Value + 0.01
 +   Debug Fp(Value, 3, 2), Cr
 +
 +   '​ Store floating point Value To D0 And D1
 +   Bytes = Peek(Memadr(Value),​ 4)
 +   _D(0) = Bytes.Word0
 +   _D(1) = Bytes.Word1
 +
 +   Delay 1000
 +Loop
 +</​code>​
 +
 +The example below demonstrates how to convert two adjacent 16-bit registers, //D0// and //D1//, back to a floating point value
 +<code xbasic>
 +' Load Bytes with the raw byte data of D0 and D1
 +Bytes.Word0 = _D(0)
 +Bytes.Word1 = _D(1)
 +
 +' Load Value with the raw byte data stored in Bytes
 +Poke Memadr(Value),​ Bytes, 4
 +</​code>​
 +
 +===== Address Offset =====
 +
 +An offset can be added to an address in the form of an [[:​comfilehmi:​hmieditor_susik:​index|expression]] to have the address dynamically computed.
 +
 +{{ :​comfilehmi:​hmieditor_address:​offset1.png }}
 +
 +{{ :​comfilehmi:​hmieditor_address:​offset2.png }}
 +
 +[[comfilehmi:​index#​screens| Back to ComfileHMI]]