Introduction
ANDRON Control Driver is part of the HumanOS® Runtime. It allows to integrate ANDRON Controls into the smart industrial machining platform.
This document explicitly describes the ANDRON driver. For common description on HumanOS® Runtime, Software Design and device information files, see the "Operation Manual".
ANDRON Control Driver
The ANDRON Control Driver is a ubiquitous hardware abstraction (UHAL) plugin of HumanOS®. It allows to integrate ANDRON Controls into the world of Smart Industrial Machining. The plugin is equipped with a high-performance memory cache allowing to exchange large amount of data with the controls.
This manual helps system engineers to configure and maintain the ANDRON Control Driver and HumanOS® Runtime setups.
Andron Afl Component
To connect ANDRON machines, the afl library is needed, verify if it is installed.
To estimate the afl version, follow these steps:
-
Start the NCClient on the ANDRON-IPC
-
Click "About" button
-
You find the machine number in the top right corner:
Connecting to ANDRON IPC
IMPORTANT: HumanOS®-IPC should not be managed by Microsoft AzureAD. Do not forget to open the firewall port for Smb (
TCP 445
).
IMPORTANT: If windows share is not used with user bound Permissions, it is suggested that both operating systems are set to the same system language.
IMPORTANT: Only one ANDRON Control can be connected per HumanOS® instance. To connect multiple ANDRON Controls, use virtual machines on your server or different HumanOS® instances, each one having its own OPC-UA server configuration!.
ANDRON controls are connected by Ethernet. The connection can only be established if the HumanOS® host-IPC can access the windows shares of ANDRON-IPC (not the controller). Therefore, you must set up a share for the whole disk or Database path. Database paths most likely look like following:
Local Name | UNC Name (share) |
---|---|
C:\andron\Database\... | \\ComputerName or IP\andron\Database\... |
C: | \\ComputerName or IP\C\$ |
Make sure that you are typing the path directly - Windows shares with names ending in \$
are invisible and will not be sent in listings of shares.
Instead, you must specify the path directly: \\MachineName\c\$\
.
Further, following circumstances must be given:
- If a domain or working group is used, both IPCs must be in the same one (with exception of a user share, see beneath).
- In case of Peer-2-Peer, you need to set the group policy settings of "undefined network" to private.
- Open the Group Policy Manager
- Go to "Windows Settings" -- "Security Settings" -- "Network list manager policies"
- Select the "Unidentified Networks"
- Set the place to "private"
- Check if the HumanOS® host-IPC sees the shared folders of the ANDRON-IPC
Sharing a Folder with Win XP (similar in other Windows versions):
Navigate to the Folder (see table above for example names) and right click it and select "Properties". Then check the Boxes as shown and give it a name (e.g. Andron).
After applying these settings the sharing tab will change its appearance. Now set the firewall rules by clicking "New Share". Add a rule.
Click "Permissions" and select Full Control.
Switch to the securities tab. If the share is done with user credentials (suggested) select the user the folder is shared with. If not, select everyone.
Remember that different Windows Versions have different rules:
Specific Win XP Settings
This must be a computer running a Professional edition of Windows. The Home editions do not have the administrative shares enabled.
Many (if not most) third-party firewalls will disable the administrative shares for security reasons. Make sure that a host firewall has not disabled them.
If you have file sharing turned off, this won't work. In XP, make sure Advanced sharing is turned on, rather than Simple sharing.
Specific Win 7 and 8 Settings
Check your network settings to ensure that File and Printer Sharing is enabled. This is not the case for networks marked as Public.
A change to policy restriction is needed:
- Go to:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\
- Create a
DWORD
value calledLocalAccountTokenFilterPolicy
and assign it a value of 1 - Restart
Server
service or reboot the machine
Windows share with user bound rights
It is possible and recommended to add a user to the Pc of the machine with the same name of the user of the PC accessing it. If the accessing user is in a domain, create a new user with local administrative rights and following policy to the user account, restricting it to be logged on:
Add the HumanOS® service to be executed by this user (enter the users credentials):
Make sure there is a user account with the same credentials on the machine pc. Then share the folders as shown in chapter "Connecting to Andron IPC".
Checking the connection
The ANDRON «Remote Access» tool can be used to check if the databases are accessible.
The tool can be fetched either from CyberTech or ANDRON.
The following steps show how the check is done:
Check for a share by clicking the [search] button or entering the IP-Address or name of the PC directly.
If a windows share is active and visible you will see it in this window. Select it and click "ok".
Add your pc to your pc favorites
(Computer Favoriten)".
Switch to the database
(Datenbank) Tab and database entries should now be visible.
It may be necessary to switch the shown setting to remote if no entries are visible(only possible when the selected database PC is the one, the tool is running on).
View of a Local Database
View of a remote Database
Device Information File
The ANDRON Device information file contains
- Data Access Points
- Alarm Source (including alarm-event task configuration)
Detailed reference for device information files, see the HumanOS® Operational Manual chapter "Device Information File".
Connection Address
The Addresses for ANDRON Controls are
Name | Description | Examples |
---|---|---|
Ethernet | Connection over ethernet. The connection address must start with \\ . | \\hmc601-wxp-000 ; \\192.168.1.1 |
Alarm and Message Handling
ANDRON Alarm and Message handling produces alarm events.
The TAlarmItem class is used to represent alarms and messages:
Field Name | Description | DataType |
---|---|---|
ConditionName | Contains the alarm number given by the ANDRON control, e.g. Alarm 12.401 | System.String |
Message | Message content | System.String |
SourceName | Name of the alarm or message source, e.g. CNC or PMC | System.String |
Active | Flag if the alarm is still pending on the ANDRON side | System.Boolean |
Messages are not acknowledged by the HumanOS® IoT Platform. Typically, this is done by the ANDRON system using the RESET button.
Following memory and alarm items are available for ANDRON controls:
Address | Description | ConditionName | SourceName |
---|---|---|---|
Nc{n}.NcAlarmEvent:0 | System Alarms | Alarm <group>:<number> | CNC |
Battery Alarm | «Alarm batlow» | CNC |
Example
The example shows the standard alarming of the ANDRON Control Driver plugin.
{
...
"AlarmEventPool": {
"Id": "314BD466-0BDD-4063-AE48-83E262671801",
"Name": "AlarmEventPool",
"Properties": [
{
"Name": "PortMatchId",
"Value": "CNCAlarmEvent"
}
],
"Tasks": [
{
"Id": "BC2633D3-9D2C-4338-B2D7-CC8638A57B7F",
"Name": "Standard Alarms",
"Address": "Nc1.NcAlarmEvent:0"
}
]
}
}
Memory Addresses
This chapter outlines all possible native addresses. These addresses must be configured within the device configuration.
Format
A native ANDRON address has following format:
{memory base}.{memory type}.{data type}:{address}(.{bit}?)(°{axis}?)
{bit}
and {axis}
are optional.
Memory Base
The CNC control provides different bases for memory:
Memory Base | Description |
---|---|
Global | Global memory base. |
Nc1 | Nc1 memory base. For the ANDRON control driver is only the first Nc channel possible. |
Memory Type
Each memory base can have one or several memory types.
Memory Base | Memory Type | Description |
---|---|---|
Global | System | Global CNC Information |
Nc1 | Program | Program Information |
Axis | Axis positions and Speeds (absolute pos, machine pos, ...) | |
State | Running state of the machine | |
HParam | Manual Parameter | |
PLCParam | PLC Parameter |
Data Types
Data Type | Description | System Data Type |
---|---|---|
Bool | Bit information. 0 = not set; 1 = set | System.Boolean |
Uint8 | Byte information (unsigned 8bit integer) | System.Byte |
Uint16 | Word information (unsigned 16bit integer) | System.UInt16 |
Uint32 | DWord information (unsigned 32bit integer) | System.UInt32 |
Int32 | Signed integer (32bit) | System.Int32 |
Float64 | Floating point number (64bit) | System.Double |
Examples
"Nc1.Program.String:0" address of the current program name.
Global System Configuration
The global system configuration can only be read or monitored. Writing is not possible.
Address | Description | Data Type |
---|---|---|
Global.System.Int32:1 | Connection status of the control (0 = Disconnected; 1 = Connected) | System.Int32 |
Global.System.String:0 | Name of current control | System.String |
Nc Program Configuration
The Nc Program configuration can only be read or monitored. Writing is not possible.
Address | Description | Data Type |
---|---|---|
Nc1.Program.String:0 | Actual selected program name | System.String |
Nc1.Program.Int32:1 | Actual selected program path | System.Int32 |
Nc1.Program.Int32:2 | Actual selected program nesting | System.Int32 |
Nc1.Program.String:10 | Startup program name | System.String |
Nc1.Program.Int32:11 | Startup program path | System.Int32 |
Nc1.Program.Int32:12 | Startup program nesting | System.Int32 |
Nc1.Program.String:20 | Actual ident file name | System.String |
Nc1.Program.Int32:21 | Actual ident file path | System.Int32 |
Nc1.Program.Int32:22 | Actual ident file nesting | System.Int32 |
Nc1.Program.String:30 | Startup ident file name | System.String |
Nc1.Program.Int32:31 | Startup ident file path | System.Int32 |
Nc1.Program.Int32:32 | Startup ident file nesting | System.Int32 |
Nc1.Program.String:40 | Actual Nc set file name | System.String |
Nc1.Program.Int32:41 | Actual Nc set file path | System.Int32 |
Nc1.Program.Int32:42 | Actual Nc set file nesting | System.Int32 |
Nc1.Program.String:50 | Startup Nc set file name | System.String |
Nc1.Program.Int32:51 | Startup Nc set file path | System.Int32 |
Nc1.Program.Int32:52 | Startup Nc set file nesting | System.Int32 |
Nc State Configuration
The Nc State configuration can only be read or monitored. Writing is not possible.
Address | Description | Data Type |
---|---|---|
Nc1.State.Int32:0 | Running State (0 = Ready; 1 = Stop; 2 = Hold; 3 = Running) | System.Int32 |
Nc1.State.Int32:1 | Operation Mode (0 = MDI; 1 = Auto; 2 = Handle; 3 = Operation Mode not defined) | System.Int32 |
Nc1.State.Int32:2 | Alarm State (0 = No alarm; 1 = Alarm; 2 = Emergency Stop; 3 = Not operational) | System.Int32 |
Nc Axis Configuration
Reading the axis position and spindle speeds.
Address | Description | Data Type |
---|---|---|
Nc1.Axis.Float64:0 | Machine positions | System.Double[] |
Nc1.Axis.Float64:1 | Absolute positions | System.Double[] |
Nc1.Axis.Float64:2 | Relative positions | System.Double[] |
Nc1.Axis.Float64:3 | Distance to go | System.Double[] |
Nc1.Axis.Float64:4 | Spindle speed | System.Double[] |
Each of these memories can be also read by axis number:
Address | Description | Data Type |
---|---|---|
Nc1.Axis.Float64:0°{x} | Machine position of x-th axis | System.Double |
Nc1.Axis.Float64:1°{x} | Absolute position of x-th axis | System.Double |
Nc1.Axis.Float64:2°{x} | Relative position of x-th axis | System.Double |
Nc1.Axis.Float64:3°{x} | Distance to go of x-th axis | System.Double |
Nc1.Axis.Float64:4°{x} | Spindle speed of x-th axis | System.Double |
Manual Parameter
The manual parameter can be accessed by the HParam-memory type.
Address | Description | Data Type |
---|---|---|
Nc1.HParam.Float64:{x} | Manual Parameter {x} as floating point | System.Float64 |
Nc1.HParam.Int32:{x} | Manual Parameter {x} as integer | System.Int32 |
PLC Parameter
The PLC parameter accesses the PLC-NC memory channel.
Address | Description | Data Type |
---|---|---|
Nc1.PLCParam.Float64:{x} | PLC Parameter {x} as floating point | System.Float64 |
Nc1.PLCParam.Int32:{x} | PLC Parameter {x} as integer | System.Int32 |
IMPORTANT: This function is only available if the transparent data channel to PLC is ENABLE in the system configuration.
How to enable the transparent data channel:
- Start the tool
C:\Andron\SysConfig.exe
- Navigate to
->
"NC Server"->
"Allgemein" - Enable the option "Transparent Data Channel to SPS"
Example
For WALTER Machines, the integer parameter 0 and 1 are used to transmit the feedrate switch position (in %).
{
"Id": "39315EDF-9617-45D0-AA1D-82459BFD9D36",
"Name": "Current feedrate override",
"DataClass": "Event",
"DataType": "System.Double",
"Address": "Nc1.PLCParam.Int32:1",
"Access": {
"Receive": true
}
}