Skip to main content
Version: 2.4

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:

  1. Start the NCClient on the ANDRON-IPC

  2. Click "About" button

  3. You find the machine number in the top right corner:

Connecting to ANDRON IPC

caution

IMPORTANT: HumanOS®-IPC should not be managed by Microsoft AzureAD. Do not forget to open the firewall port for Smb (TCP 445).

caution

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.

caution

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 NameUNC 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:

  1. If a domain or working group is used, both IPCs must be in the same one (with exception of a user share, see beneath).
  2. 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:

  1. Go to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\
  2. Create a DWORD value called LocalAccountTokenFilterPolicy and assign it a value of 1
  3. 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:

cid.jpg@01D52524.911C2990

Add the HumanOS® service to be executed by this user (enter the users credentials):

cid.jpg@01D52524.911C2990

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

NameDescriptionExamples
EthernetConnection 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 NameDescriptionDataType
ConditionNameContains the alarm number given by the ANDRON control, e.g. Alarm 12.401System.String
MessageMessage contentSystem.String
SourceNameName of the alarm or message source, e.g. CNC or PMCSystem.String
ActiveFlag if the alarm is still pending on the ANDRON sideSystem.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:

AddressDescriptionConditionNameSourceName
Nc{n}.NcAlarmEvent:0System AlarmsAlarm <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 BaseDescription
GlobalGlobal memory base.
Nc1Nc1 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 BaseMemory TypeDescription
GlobalSystemGlobal CNC Information
Nc1ProgramProgram Information
AxisAxis positions and Speeds (absolute pos, machine pos, ...)
StateRunning state of the machine
HParamManual Parameter
PLCParamPLC Parameter

Data Types

Data TypeDescriptionSystem Data Type
BoolBit information. 0 = not set; 1 = setSystem.Boolean
Uint8Byte information (unsigned 8bit integer)System.Byte
Uint16Word information (unsigned 16bit integer)System.UInt16
Uint32DWord information (unsigned 32bit integer)System.UInt32
Int32Signed integer (32bit)System.Int32
Float64Floating 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.

AddressDescriptionData Type
Global.System.Int32:1Connection status of the control (0 = Disconnected; 1 = Connected)System.Int32
Global.System.String:0Name of current controlSystem.String

Nc Program Configuration

The Nc Program configuration can only be read or monitored. Writing is not possible.

AddressDescriptionData Type
Nc1.Program.String:0Actual selected program nameSystem.String
Nc1.Program.Int32:1Actual selected program pathSystem.Int32
Nc1.Program.Int32:2Actual selected program nestingSystem.Int32
Nc1.Program.String:10Startup program nameSystem.String
Nc1.Program.Int32:11Startup program pathSystem.Int32
Nc1.Program.Int32:12Startup program nestingSystem.Int32
Nc1.Program.String:20Actual ident file nameSystem.String
Nc1.Program.Int32:21Actual ident file pathSystem.Int32
Nc1.Program.Int32:22Actual ident file nestingSystem.Int32
Nc1.Program.String:30Startup ident file nameSystem.String
Nc1.Program.Int32:31Startup ident file pathSystem.Int32
Nc1.Program.Int32:32Startup ident file nestingSystem.Int32
Nc1.Program.String:40Actual Nc set file nameSystem.String
Nc1.Program.Int32:41Actual Nc set file pathSystem.Int32
Nc1.Program.Int32:42Actual Nc set file nestingSystem.Int32
Nc1.Program.String:50Startup Nc set file nameSystem.String
Nc1.Program.Int32:51Startup Nc set file pathSystem.Int32
Nc1.Program.Int32:52Startup Nc set file nestingSystem.Int32

Nc State Configuration

The Nc State configuration can only be read or monitored. Writing is not possible.

AddressDescriptionData Type
Nc1.State.Int32:0Running State (0 = Ready; 1 = Stop; 2 = Hold; 3 = Running)System.Int32
Nc1.State.Int32:1Operation Mode (0 = MDI; 1 = Auto; 2 = Handle; 3 = Operation Mode not defined)System.Int32
Nc1.State.Int32:2Alarm State (0 = No alarm; 1 = Alarm; 2 = Emergency Stop; 3 = Not operational)System.Int32

Nc Axis Configuration

Reading the axis position and spindle speeds.

AddressDescriptionData Type
Nc1.Axis.Float64:0Machine positionsSystem.Double[]
Nc1.Axis.Float64:1Absolute positionsSystem.Double[]
Nc1.Axis.Float64:2Relative positionsSystem.Double[]
Nc1.Axis.Float64:3Distance to goSystem.Double[]
Nc1.Axis.Float64:4Spindle speedSystem.Double[]

Each of these memories can be also read by axis number:

AddressDescriptionData Type
Nc1.Axis.Float64:0°{x}Machine position of x-th axisSystem.Double
Nc1.Axis.Float64:1°{x}Absolute position of x-th axisSystem.Double
Nc1.Axis.Float64:2°{x}Relative position of x-th axisSystem.Double
Nc1.Axis.Float64:3°{x}Distance to go of x-th axisSystem.Double
Nc1.Axis.Float64:4°{x}Spindle speed of x-th axisSystem.Double

Manual Parameter

The manual parameter can be accessed by the HParam-memory type.

AddressDescriptionData Type
Nc1.HParam.Float64:{x}Manual Parameter {x} as floating pointSystem.Float64
Nc1.HParam.Int32:{x}Manual Parameter {x} as integerSystem.Int32

PLC Parameter

The PLC parameter accesses the PLC-NC memory channel.

AddressDescriptionData Type
Nc1.PLCParam.Float64:{x}PLC Parameter {x} as floating pointSystem.Float64
Nc1.PLCParam.Int32:{x}PLC Parameter {x} as integerSystem.Int32
note

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:

  1. Start the tool C:\Andron\SysConfig.exe
  2. Navigate to -> "NC Server" -> "Allgemein"
  3. 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
}
}