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.
Attribute | Description | Data Type |
---|---|---|
MemoryBase | Base address of the assigned memory (see Memory Base) | EMemoryBase |
MemoryType | Memory 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"
}
]
}
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:
Id
: unique device id (GUID), which MUST match the device license id.DriverId
:B3CCD1A7-A49B-46FC-B983-5284992F6444
Address
: Connection address- Data Access
- Commands
- Alarm Events
- Device Skills
See Device Information Model for more details.
Connection Address
The FANUC plugin support two types of addresses:
Name | Description | Example |
---|---|---|
HSSB | Connection over High Speed Serial Bus (HSSB). The address is the node name. | CNC-1 |
Ethernet | Connection over ethernet (Embedded of Full Ethernet Card). The address is {IP-Address}:{port} | 192.168.1.1:8193 |
When HumanOS IoT Gateway is used together with other Applications sharing the HSSB connection, please keep the multi-user issue in mind.