Heidenhain Plugin
Last updated
Last updated
The Heidenhain Plugin allows to continually Poll errors, COM-functions as well as memory areas of Heidenhain PLCs.
As opposed to other Senseforce Edge plugins, the Heidenhain plugin is not directly delivered with the Senseforce Edge main application.
Contact Senseforce to get access to the Senseforce Heidenhain PLC plugin.
Due to limitations in the Heidenhain communication protocol, the plugin is only available for Windows 7 and Windows 10 64 Bit operating systems.
The Heidenhain Plugin is distributed as Windows installer as well as archive, containing the plugin binaries.
When using the Windows installer, an install wizard will guide you through the installation.
It is advised to install your Senseforce Edge main binaries first. Secondly, install the Heidenhain plugin into the folder "[YourEdgeFolder\Plugins\Ingress\Heidenhain
". (Eg. in the Screenshot above, the Senseforce Edge main application was installed to C:\Program Files\Luna\
.).
Finish the installation wizard and your binaries as well as a set of default configurations will be installed to the specified location.
For best user experience, copy the default configurations into the folder, where your configurations for the other plugins are located.
(If you run the Edge as console application: [Edge Main Folder]/configs/configurations/InputPlugins/Heidenhain
; if you run it as Service, it's C:/ProgramData/Senseforce/Luna Data/[YourServiceName]/configurations/InputPlugins/Heidenhain
Instead of using the Windows installer, you might use the plugin distributed as archive. Simply unzip the plugin files to your desired locations. It is advised to unzip it to the following folder: [YourEdgeFolder\Plugins\Ingress\Heidenhain
.
The archive also contains a set of default configurations. For best user experience, copy the default configurations into the folder, where your configurations for the other plugins are located.
(If you run the Edge as console application: [Edge Main Folder]/configs/configurations/InputPlugins/Heidenhain
; if you run it as Service, it's C:/ProgramData/Senseforce/Luna Data/[YourServiceName]/configurations/InputPlugins/Heidenhain
As the Heidenhain plugin makes use from COM interops, the dll providing these functionalities needs to be registered.
Start a powershell or command prompt with elevated permissions.
Navigate to the install directory of the Heidenhain plugin
Run .\as_admin_registerx64.bat
If you want to unregister the dll again, run .\as_admin_unregisterx64.bat
This manual registration process is only required for the installation Using the archive. If you use the Windows installer, you don't need to manually register the dll.
The following section describes how to configure the HeidenhainSettings.xml
- the main configuration file for the Heidenhain plugin.
The DataMappings.xml is not described here. Use the default DataMappings.xml for most use cases.
The HeidenhainSettings.xml is the main configuration file for the plugin and defines the network location of the PLC as well as which data should be read.
Find a default configuration file below, as well as descriptions of what and how to configure in the table below.
CNCType
Defines the Type of PLC. Possible types are:
DNC_CNC_TYPE_TNC6xx_NCK
DNC_CNC_TYPE_ATEKM
DNC_CNC_TYPE_ITNC
DNC_CNC_TYPE_MILLPLUS
DNC_CNC_TYPE_MILLPLUSIT
DNC_CNC_TYPE_TURNPLUS
DNC_CNC_TYPE_MILLPLUSIT_NCK
DNC_CNC_TYPE_MANUALPLUS_NCK
DNC_CNC_TYPE_TEKM_NCK
DNC_CNC_TYPE_TNC320_NCK
DNC_CNC_TYPE_GRINDPLUS_NCK
DNC_CNC_TYPE_TNC6xx_NCK
DNC_CNC_TYPE_AR6000_NCK
DNC_CNC_TYPE_CNCPILOT6xx_NCK
DNC_CNC_TYPE_TNC128_NCK
DNC_CNC_TYPE_GRINDPLUS640_NCK
Note: Currently only DNC_CNC_TYPE_TNC6xx_NCK is used in production
Protocol
Connection protocol to use. Allowed values are:
DNC_PROT_LSV2
DNC_PROT_TCPIP
DNC_PROT_COM
DNC_PROT_RPC
DNC_PROT_DIO
Note: Currently only DNC_PROT_RPC and DNC_PROT_TCPIP is used in production
HostName
IP-Address/Hostname of the PLC. Needs to be reachable by the host where the Edge is running on.
Port
Port of the PLC to connect to.
OnlySendChanges
DefDefines, whether only changes in data should be transmitted, or each value at each polling cycle. This setting applies to all the defined data. If you have some data which you want to send with OnlySendChanges enabled and some where you have OnlySendChanges disabled, it is advised to load a second plugin.
Data
The data configuration section contains all the data definitions you want to read from the PLC. You can define the following data types to read. Unless noted otherwise, you can specify each data point only once.
PollingTimeMs: For all data points, you can add a setting "PollingTimeMs" to specify the polling interval in milliseconds. You may set PollingTimeMs to "-1" - than the corresponding data point is only read once at the startup of the plugin.
NcUpTime: Uptime of the NC, in seconds
MachineUpTime: Uptime of the Machine, in seconds
MachineRunningTime: Running time of the machine, in seconds
SpindleRunningTime: Running time of one or several spindles, in seconds
Define for which Timers you want to read the data, by specifying one or several TimerId-settings inside the Timers configuration Example:
DncMode: Current operation mode (local or remote), as numeric representation of the mode ENUM. Possible values are:
0...DNC_MODE_LOCAL
1...DNC_MODE_REMOTE
ExecutionMode: Current mode of the execution, as numeric representation of the mode enum. Possible values are:
0...DNC_EXEC_MANUAL
1...DNC_EXEC_MDI
2...DNC_EXEC_RPF
3...DNC_EXEC_SINGLESTEP
4...DNC_EXEC_AUTOMATIC
5...DNC_EXEC_OTHER
6...DNC_EXEC_SIMULO_TURBO_DEPRECATED
7...DNC_EXEC_HANDWHEEL
ExecutionPoint: Current location of the execution pointer of a specific program. Provides the following values:
SelectedProgram
ProgramName
BlockNumber
BlockContent
OverrideInfo: Provides the current override for feed, speed and rapid
ProgramStatus: Gets the status of the current program, as numeric representation of the enum value. Possible values are:
0...DNC_PRG_STS_IDLE
1...DNC_PRG_STS_RUNNING
2...DNC_PRG_STS_STOPPED
3...DNC_PRG_STS_INTERRUPTED
4...DNC_PRG_STS_FINISHED
5...DNC_PRG_STS_ERROR
6...DNC_PRG_STS_NOTSELECTED
CutterLocation: Gets the location of one or several cutters
Define for which Channels you want to read the data, by specifying one or several Channel-settings inside the Channels configuration Example:
Errors: This will read all related information to currently active errors. A separate message will be generated, if an error is not active anymore. The following information are available:
Handle
TimeStamp
Text
Number
Location
Group
Action
Cause
Channel
Class
Description
Internals
IsActive
State: Gets the state of the dnc communication interface, as numeric representation of the enum. Possible values are:
0...DNC_STATE_NOT_INITIALIZED
1...DNC_STATE_HOST_IS_NOT_AVAILABLE
2...DNC_STATE_HOST_IS_AVAILABLE
3...DNC_STATE_WAITING_PERMISSION
4...DNC_STATE_DNC_IS_AVAILABLE
5...DNC_STATE_MACHINE_IS_BOOTED
6...DNC_STATE_MACHINE_IS_INITIALIZING
7...DNC_STATE_MACHINE_IS_AVAILABLE
8...DNC_STATE_MACHINE_IS_SHUTTING_DOWN
9...DNC_STATE_DNC_IS_STOPPED
10...DNC_STATE_HOST_IS_STOPPED
11...DNC_STATE_NO_PERMISSION
VersionComInterface: Gets the version of the com interface.
ChannelInfo: Lists all channels as well as the axes correlated to each channel.
AxisInfo: Gets descriptions for all axes. The following information are provided per axis:
BstrAxisName
LAxisId
AxisType
Sik: Gets the System Identification Key of the PLC.
NcVersion: Gets the version of all the softwares involved. Eg. "DNC_SW_TYPE_NCKERN": "597110 14",
"DNC_SW_TYPE_MC": "817601 07 ",
"DNC_SW_TYPE_PLC": "501_81_07_0300",
"DNC_SW_TYPE_CC": "340542.14.0",
"DNC_SW_TYPE_FS_MCU": "340507.14.00.01",
"DNC_SW_TYPE_FS_CCU": "340544.14.0"
DataEntryBlocks
Besides the above information coming directly from the COM interface, you may also directly access DataEntries in the PLCs memory. You can create one or several DataEntryBlock-elements inside the DataEntryBlocks-section. The DataEntries inside one Block are sent in one combined messages (this means they are visible in one line in the dataset editor).
DataEntryBlock
Define one or several blocks for DataEntries. Per DataEntryBlock you might define:
AccessMode: The Heidenhain GetDataEntry Access mode to use. Depending on which memory area to access, use the corresponding value. For allowed values see chapter Possible values for DataEntry access modes in this page. For more details also refer to the Heidenhain DNC manual.
Password: Password to be used to access the configured AccessMode
PollingTimeMs: specify the polling interval in milliseconds.
One or several DataEntry sections
Per DataEntry, define:
Path: Where to read the DataEntry. Needs to be Heidenhain DataEntry Path.
Unit: Metric or Inch
Each DataEntry inside a single DataEntryBlock will be combined into one message, while DataEntires in different DataEntryBlocks will be sent in different messages.
Please note, that you can't mix AccessModes inside a DataEntryBlock. Paths from different Access-Locations need to be configured into different blocks!