Skip to main content
Version: 2.6

FANUC Driver Configuration

Plugin Configuration

The plugin configuration file is named settings.json located in <install directory>\Config\HumanOS.UHAL.FanucControl\. It contains all global settings of the plugin.

See Generic Plugin Configuration for more details.

Plugin Configuration Extension

The FANUC Plugin extends the Generic Plugin Configuration with

  • Task Processor Memory Assignment
  • Sub Task processing
  • Alarm and Event Settings
  • DNC settings

Extension: Sub Task Processor

The configuration contains one or more task processors (threads) that handle different facets of the FANUC control driver, like:

  • Memory management (command, read, write and monitoring)
  • Alarm and event management

At least one processor is needed. It is called MainTaskProcessor.

Additionally, different sub task processors can be added named SubTaskProcessor. They allow to manage specific facets of the driver in parallel. Several tasks can be predefined and added to the processors.

Extension: Task Processor Memory Assignment

By default, all memory bases are mapped to the main task processor. The memory mapping helps to assign the memory base address to another task processor. This helps to distribute the data processing load to different tasks (threads).

Note that if two task processors use the same memory mapping, the workload is split among these processors.

AttributeDescriptionData Type
MemoryBaseBase address of the assigned memory (see Memory Base)EMemoryBase
MemoryTypeMemory type of the assigned memory. This setting is optional. If empty, all memory types of the memory base are handled by this processor.EMemoryType

Following example assigns the 2nd Nc channel and the dual check safety to the “Channel2Processor”:

{
"Name": "Channel2Processor",
"ProcessingPriority": "Normal",
"MemoryMappings": [
{
"MemoryBase": "Nc2"
},
{
"MemoryBase": "Dc2"
}
]
}

Following example assigns the ToolLife Management to “ToolDataProcessor”:

{
"Name": "ToolDataProcessor",
"ProcessingPriority": "BelowNormal",
"MemoryMappings": [
{
"MemoryBase": "Nc1",
"MemoryType": "ToolLife"
},
{
"MemoryBase": "Nc2",
"MemoryType": "ToolLife"
}
]
}
CAUTION

Use the processing priority setting carefully!! Impropriate settings may cause high processor loads and could slow down the overall system performance. We recommend that only one of the processors is set to “Highest”.

Extension: Alarm and Event Handling

It is recommended to use a separate task processor for alarming and OEM message mapping.

Use the memory type “Alarming” to specify an alarming task processor.

{
"Name": "AlarmEventProcessor",
"ProcessingPriority": "BelowNormal",
"MemoryMappings": [
{
"MemoryBase": "Nc1",
"MemoryType": "Alarming"
},
{
"MemoryBase": "Nc2",
"MemoryType": "Alarming"
}
]
}

For alarm configurations, see Alarm and Events.

Extension: DNC Task Processor

DNC processors can be configured to transmit nc programs to a specific nc channel.

  "DncProcessors": [
{
"Name": "DNC Processor",
"ProcessingPriority": "Normal",
"MaxSchedulingTimeSlice": 50,
"MinSchedulingTimeSlice": 10,
"MemoryBase": "Nc1",
"FileDirectory": "C:\\Temp\\ncfiles\\"
}
]

The nc programs must be stored in a file directory accessible to HumanOS.

Example

Following example shows a configuration of two task processors. The MainTaskProcessor handles the commanding, reading, writing and monitoring or all memories within the CNC. The AlarmEventProcessor manages the alarm and events of 1st Nc channel, OEM bit messages and OEM channel of 1st Pmc channel.

{
"Disabled": false,
"Devices": [
{
"MainTaskProcessor": {
"Name": "Main TaskProcessor",
"ProcessingPriority": "Highest"
},
"SubTaskProcessors": [
{
"Name": "AlarmEventProcessor",
"ProcessingPriority": "BelowNormal",
"MemoryMappings": [
{
"MemoryBase": "Nc1",
"MemoryType": "Alarming"
},
{
"MemoryBase": "Nc2",
"MemoryType": "Alarming"
}
]
}
]
}
]
}

The next example shows a configuration of three processors. The MainTaskProcessor handles 1st Nc and Pmc channels. The Channel2Processor handles the 2nd Nc channel and Channel3Processor the 3rd Nc channel.

{
"Disabled": false,
"Devices": [
{
"MainTaskProcessor": {
"Name": "Main TaskProcessor",
"ProcessingPriority": "Highest",
"MaxSchedulingTimeSlice": 100,
"MinSchedulingTimeSlice": 10
},
"SubTaskProcessors": [
{
"Name": "Channel2Processor",
"ProcessingPriority": "Normal",
"MemoryMappings": [
{
"MemoryBase": "Nc2"
}
]
},
{
"Name": "Channel3Processor",
"ProcessingPriority": "Normal",
"MemoryMappings": [
{
"MemoryBase": "Nc3"
}
]
}
]
},
{
"Id": "FCB36508-3A47-4C06-84D0-267947E3595C",
"MainTaskProcessor": {
"Name": "Main TaskProcessor",
"ProcessingPriority": "Highest",
"MaxSchedulingTimeSlice": 100,
"MinSchedulingTimeSlice": 10
},
"SubTaskProcessors": [
{
"Name": "AlarmEventProcessor",
"ProcessingPriority": "BelowNormal",
"MemoryMappings": [
{
"MemoryBase": "Nc1",
"MemoryType": "Alarming"
}
]
}
]
}
]
}

Next example shows a DNC task processor used to transmit nc program from a file share:

{
"Disabled": false,
"Devices": [
{
"MainTaskProcessor": {
"Name": "Main TaskProcessor",
"ProcessingPriority": "Highest",
"MaxSchedulingTimeSlice": 100,
"MinSchedulingTimeSlice": 10
},
"SubTaskProcessors": [ ],
"DncProcessors": [
{
"Name": "DNC Processor",
"ProcessingPriority": "Normal",
"MaxSchedulingTimeSlice": 50,
"MinSchedulingTimeSlice": 10,
"MemoryBase": "Nc1",
"FileDirectory": "C:\\Temp\\ncfiles\\"
}
]
}
]
}

Device Information File

The device information file is used to configure the access to the Fanuc CNC controls. It contains:

See Device Information Model for more details.

Connection Address

The FANUC plugin support two types of addresses:

NameDescriptionExample
HSSBConnection over High Speed Serial Bus (HSSB). The address is the node name.CNC-1
EthernetConnection over ethernet (Embedded of Full Ethernet Card). The address is {IP-Address}:{port}192.168.1.1:8193
IMPORTANT FOR HSSB

When HumanOS IoT Gateway is used together with other Applications sharing the HSSB connection, please keep the multi-user issue in mind.