Skip to main content
Version: 2.7

FANUC Alarm and Event Sources

FANUC Alarm and Message handling produces alarm events. The AlarmEventSourceInfo object is used to handle these alarms and events. The declaration is located in the device file (only version 1.4 or higher).

Messages are not acknowledged by the HumanOS Plugin. Typically, this is done by the FANUC system using the RESET button or the clearAlarm command.

Alarm Source Addresses

Following memory and alarm items are available for FANUC controls:

AddressDescriptionConditionNameSourceName
Nc{n}.NcAlarmEvent:0System AlarmsAlarm <number>CNC
Operator MessagesMessage <number>CNC
Nc{n}.Dynamic.Float64:0Messages and alarms when accessing dynamic memory (see table below)Alarm <number>CNC/Channel{n}
Pmc1.OEMAlarmEvent:0OEM bit alarm and messagesAlarm <number>PMC
OEM channel messagesAlarm <number>PMC/MessageChannel{x}

The dynamic memory can post following alarms:

ConditionNameAlarmTypeText
Alarm 1000002AlarmLOW BATTERY
Alarm 1000003AlarmFAN ALARM
Alarm 1000004WarningPS WARNING
Alarm 1000005WarningFSSB WARNING
Alarm 1000006WarningLEAKAGE WARNING
Alarm 1000007WarningENCODER WARNING
Alarm 1000008AlarmPMC ALARM
Alarm 10000{xy}AlarmUNKNOWN ALARM

Alarm Item Structure

The TAlarmItem class is used to represent alarms and messages:

Field NameDescriptionDataType
ConditionNameContains the alarm number given by the FANUC control, e.g. Alarm 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 FANUC sideSystem.Boolean
PropertiesList of properties that are name-value-pairs

Alarm-Event Tasks

The alarm-event task manages the alarms and events occurring in PMC and NC channels. The AlarmEventSourceInfo object can have several AlarmEvent tasks.

Following alarm and message reader are available:

AddressDescriptionData Type
Nc1.NcAlarmEvent:0System Alarm and operator message reader.TAlarmEvent[]
Pmc1.OEMAlarmEvent:0OEM alarm and message structure within the PMC memory.TAlarmEvent[]

Example of a System AlarmEvent Task:

{
...
"AlarmEventPool": {
"Id": "FA1611AB-B6C9-4FF4-B34D-BF35E6A44232",
"Name": "AlarmEventPool",
"Tasks": [
{
"Id": "10077ca2-4e2e-493c-a531-279df6c10cc8",
"Name": "Standard Messages",
"Address": "Nc1.NcAlarmEvent:0"
}
]
}
}

OEM Alarm Message Mapping

FANUC Control driver has the possibility to map OEM alarm messages individually. The OEM messages are stored in a separate JSON file and then mapped at runtime.

The structure of the JSON is as follows:

  • Messages: Root element of json file
    • Message: Message element containing the OEM specific data
Field NameDescriptionData Type
IdOriginal message IdSystem.Int32
OemIdOEM Message IdSystem.String
AlarmTypeAlarm type of the message
Alarm: Alarm message
Warning: Warning message
Information: Information message
EAlarmType
TextMessage text or text key for translation at HMI levelSystem.String
PropertiesAdditional properties to specify the alarm
Properties:NameProperty nameSystem.String
Properties:ValueProperty valueSystem.String

Example:

{
"Messages": [
{
"Id": 0,
"AlarmType": "Alarm",
"OemId": "Alarm 1",
"Text": "PU Sammelfehler",
"Properties": [
{
"Name": "MyProperty",
"Value": "Some other info"
},
{
"Name": "EnableRmq",
"Value": "1"
},
{
"Name": "EnableRest",
"Value": "0"
}
]
},
{
"Id": 1,
"AlarmType": "Alarm",
"OemId": "Alarm 2",
"Text": "Batteriefehler",
"Properties": [
{
"Name": "MyProperty",
"Value": "Some other info too"
},
{
"Name": "EnableRmq",
"Value": "1"
},
{
"Name": "EnableRest",
"Value": "0"
}
]
}
]
}

OEM AlarmEvent Tasks

Pmc1.OEMAlarmEvent needs additional properties:

AttributeDescriptionData Type
MessageFormatFormat of the message
  • BitMessage: Each bit represents a message
  • Channel32Message: Each dword (32bit) represents a message group of 32 messages. The dword represents the message id. The bit represents the message instance id.
System.String
StartAddressStart address of the message field (e.g. Pmc1.Pmc_R.Uint8:900)TMemoryAddress
MessageCountNumber of messages
  • For BitMessages: MessageCount = 1028 results in 128 bytes.
  • For Channel32Messages: MessageCount = 30 results in 120 bytes.
System.Int32
MessageMappingFileJson file containing the OEM message mappingSystem.String
SourceNameOptional name of the source. If not specified, the start address is taken as source name.System.String

Additionally, properties can be specified to be added to the AlarmItems. These properties are then attached to each raising alarm.

AttributeDescriptionData Type
Message:<Name><Name>= any name of a property being added to the alarm items.System.String

Example of an OEM AlarmEvent Task:

{
"Id": "DDA85843-476D-4A2A-ACC8-250266E75A88",
"Name": "FanucControl",
"DriverId": "B3CCD1A7-A49B-46FC-B983-5284992F6444",
"Address": "CNC-1",
"AlarmEventPool": {
"Id": "FA1611AB-B6C9-4FF4-B34D-BF35E6A44232",
"Name": "AlarmEventPool",
"Tasks": [
{
"Id": "10077ca2-4e2e-493c-a531-279df6c10cc8",
"Name": "Report Messages",
"Address": "Nc1.OEMAlarmEvent:0",
"Properties": [
{
"Name": "MessageMappingFile",
"Value": "MyAlarmMapping.json"
},
{
"Name": "MessageCount",
"Value": "185"
},
{
"Name": "StartAddress",
"Value": "Pmc1.Pmc_D.Uint8:972"
},
{
"Name": "SourceName",
"Value": "OEM "
},
{
"Name": "Message:Type",
"Value": "Standard"
}
]
}
]
}
}