Hubbry Logo
Manufacturing Message SpecificationManufacturing Message SpecificationMain
Open search
Manufacturing Message Specification
Community hub
Manufacturing Message Specification
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Manufacturing Message Specification
Manufacturing Message Specification
from Wikipedia

Manufacturing Message Specification (MMS) is an international standard (ISO 9506) dealing with messaging systems for transferring real time process data and supervisory control information between networked devices or computer applications. The standard is developed and maintained by the ISO Technical Committee 184 (TC184). MMS defines the following

  • A set of standard objects which must exist in every device, on which operations like read, write, event signaling etc. can be executed. Virtual manufacturing device (VMD) is the main object and all other objects like variables, domains, journals, files etc. comes under VMD.
  • A set of standard messages exchanged between a client and a server stations for the purpose of monitoring or controlling these objects.
  • A set of encoding rules for mapping these messages to bits and bytes when transmitted.

MMS original communication stack

[edit]

MMS was standardized in 1990 under two separate standards as

  1. ISO/IEC 9506-1 (2003): Industrial Automation systems - Manufacturing Message Specification - Part 1: Service Definition
  2. ISO/IEC 9506-2 (2003): Industrial Automation systems - Manufacturing Message Specification - Part 2: Protocol Specification

This version of MMS used seven layers of OSI network protocols as its communication stack:

Application Application Common Service Element (ACSE) - ISO 8649/8650
Presentation Connection Oriented Presentation - ISO 8822/8823

Abstract Syntax Notation (ASN) - ISO 8824/8825

Session Connection Oriented Session - ISO 8326/8327
Transport Connection Oriented Transport - ISO 8072/8073
Network Connectionless network - ISO 8348
Link MAC - ISO 8802-3 [Ethernet]

MAC - ISO 8802-4 [Token Ring]

Physical Ethernet

Token Ring

MMS stack over TCP/IP

[edit]

Because the Open Systems Interconnection protocols are challenging to implement, the original MMS stack never became popular. In 1999, Boeing created a new version of MMS using Internet protocols instead of the bottom four layers of the original stack plus RFC 1006 ("ISO Transport over TCP") in the transport layer. The top three layers use the same OSI protocols as before.

In terms of the seven-layer OSI model, the new MMS stack looks like this:

Application Application Common Service Element (ACSE) - ISO 8649/8650
Presentation Connection Oriented Presentation - ISO 8822/8823

Abstract Syntax Notation (ASN) - ISO 8824/8825

Session Connection Oriented Session - ISO 8326/8327
Transport ISO transport over TCP - RFC 1006

Transmission Control Protocol (TCP) - RFC 793

Network Internet Control Message Protocol (ICMP) - RFC 792

Internet Protocol (IP) - RFC 791

Address Resolution Protocol (ARP) - RFC 826

Link IP datagrams over Ethernet - RFC 894

MAC - ISO 8802-3 [Ethernet]

Physical Ethernet

With the new stack, MMS has become a globally accepted standard.[citation needed]

[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
The Manufacturing Message Specification (MMS) is an international standard (ISO 9506) that defines an application-layer protocol within the for messaging communications in industrial automation systems, enabling the reliable exchange of real-time process data, supervisory control commands, and monitoring information between programmable devices such as programmable logic controllers (PLCs), remote terminal units (RTUs), numerical controllers (NCs), and robot controllers. Developed in response to the need for interoperable communication in manufacturing environments, MMS originated from ' Manufacturing Automation Protocol () initiative in the 1980s, which aimed to standardize factory-floor networking. First published by the () Technical Committee 184 in 1990, the standard was revised and reissued in 2003 as its second edition, consisting of two parts: ISO 9506-1, which outlines the and abstract services, and ISO 9506-2, which details the protocol specification for client-server message exchanges over full-duplex, reliable networks. This edition remains current as of the last review in 2020, supporting modern implementations while maintaining . At its core, MMS operates on a client-server architecture, utilizing the Virtual Manufacturing Device (VMD) concept to abstractly represent a programmable device's capabilities and resources as a collection of managed objects. It provides over 80 confirmed and unconfirmed services for manipulating 15 object types, including named variables, domains (for program storage), semaphores, events, and journals, allowing operations such as reading/writing variables, initiating programs, and logging events without dependency on specific lower-layer networks like TCP/IP, Ethernet, or fieldbuses. This object-oriented, service-rich design ensures flexibility for , diagnostics, and in distributed systems. MMS has become a foundational protocol for numerous industry-specific standards, extending its application beyond general manufacturing to sectors like energy and utilities. For instance, it forms the basis of the client-server communication layer in IEC 61850, the international standard for communication networks and systems in electrical substations, facilitating real-time data transfer for supervisory control and data acquisition (SCADA). Similarly, MMS underpins IEC 61400-25 for communications in wind power plants and the Utility Communication Architecture (UCA) defined in IEEE TR 1550, promoting interoperability in smart grid and renewable energy systems. These adaptations highlight MMS's enduring role in enabling secure, efficient, and standardized industrial communications. In October 2024, security researchers identified five vulnerabilities (CVE-2024-5413, CVE-2024-5414, CVE-2024-5415, CVE-2024-5416, and CVE-2024-5417) in popular MMS implementations, such as MZ Automation's libIEC61850 and Sisco's MMS-EASE, which could enable remote code execution and denial-of-service attacks, emphasizing the need for secure deployment practices.

Overview and History

Introduction

The Manufacturing Message Specification (MMS), defined in ISO 9506, is an application-layer protocol within the designed for transferring real-time process data and supervisory control information between networked devices in and process environments. It operates as a messaging system to support communications to and from programmable devices, ensuring reliable exchange over full-duplex networks such as the . The primary purpose of MMS is to enable client-server interactions for monitoring, control, and management of industrial equipment, including programmable logic controllers (PLCs), remote terminal units (RTUs), and robot controllers. This facilitates seamless integration in distributed control systems, where clients can interrogate or direct servers representing physical devices. Key benefits of MMS include its standardization, which promotes interoperability in multivendor settings by abstracting device representations through object models, such as the Virtual Manufacturing Device (VMD). Its scope is limited to application-layer messaging, excluding details on underlying transport protocols or specific service implementations.

Development History

The Manufacturing Message Specification (MMS) originated in the early 1980s as part of ' Manufacturing Automation Protocol () initiative, aimed at resolving challenges on factory floors by enabling communication among diverse industrial devices. MAP version 2.1, released in 1985, adopted the OSI reference model and IEEE 802.4 token bus for physical and data link layers, laying groundwork for standardized messaging. By MAP 3.0 in 1987, early MMS concepts were integrated to define application-layer services for real-time process data exchange, marking a key milestone in evolving from proprietary systems to open protocols. MMS achieved formal standardization in 1990 when the (ISO) published it as ISO 9506 under Technical Committee 184 (TC 184) for industrial automation, building directly on MAP outcomes to promote cross-vendor compatibility. In the late 1990s, efforts to address limitations of OSI-based networks adapted MMS for TCP/IP stacks using ISO Transport over TCP (RFC 1006), supporting broader adoption in the 2000 technical revision (ISO 9506-1:2000 and ISO 9506-2:2000). The standard underwent further refinement in 2003 with the second editions of ISO 9506-1 and ISO 9506-2, which corrected protocol errors, enhanced definitions for object modeling, and expanded support for diverse manufacturing applications while simplifying companion standards. No major revisions have occurred since 2003, with the 2003 versions remaining current following a 2020 review. MMS development involved close collaboration among ISO, the International Electrotechnical Commission (IEC), and industry bodies such as the IEEE Subcommittee on Communications Standards for Utility (SCC36), influencing extensions for utility sector protocols like those in IEC 61850.

Standards and Specifications

ISO 9506-1: Service Definitions

ISO 9506-1:2003 defines the abstract services for the Manufacturing Message Specification (MMS), serving as the application layer standard within the OSI reference model to enable messaging communications between programmable devices in industrial automation systems. It specifies over 80 abstract services that support operations such as device interrogation, control, and data exchange, without detailing implementation-specific aspects. These services are structured as either confirmed (requiring a response from the server) or unconfirmed (no response needed), with confirmed services typically involving request primitives followed by response or error primitives, while unconfirmed services use only notifications. The services are organized into functional categories to address various aspects of manufacturing device interactions. The Environment and General Management category includes services for session establishment and termination, such as Initiate (to set up a communication association with parameters like proposed parameters and server parameters), Conclude (to orderly terminate the association), and Abort (for abrupt disconnection). These ensure reliable connection handling in distributed systems. The VMD Support category provides services for querying and managing the Virtual Manufacturing Device (VMD), the top-level abstraction representing a device. Key examples include Identify (to retrieve VMD-specific information like vendor details and supported services) and Status (to obtain the current operational state of the VMD). Additional services like GetNameList allow listing of object names within scopes, facilitating device discovery. Domain Management services focus on handling logical memory domains for program and data storage. Examples encompass InitiateDownloadSequence (to begin domain content transfer), RequestDomainDownload (to initiate domain loading from a client to server), and RequestDomainUpload (to retrieve domain content for backup or analysis), supporting modular program loading in manufacturing environments. In Program Invocation Management, services enable control of executable programs within domains. Representative operations include CreateProgramInvocation (to instantiate a program), Start (to begin execution), Stop (to halt it), and Resume (to continue a suspended invocation), allowing dynamic management of control logic. Other specialized categories address event-driven and synchronization needs. Event Management services, such as DefineEventCondition (to set up monitored conditions) and AcknowledgeEvent (to confirm event occurrences), support asynchronous notifications for alarms and status changes. Semaphore Management includes TakeSemaphore (to acquire a synchronization resource) and GiveSemaphore (to release it), aiding concurrent process coordination. Operator Communication services like DisplayText (to output messages to operators) and GetInput (to solicit user responses) facilitate human-machine interaction. Finally, Journal Management services, including CreateJournal (to initiate a log) and ReadJournalEntry (to access recorded events), enable auditing and historical data retrieval. Service primitives incorporate standardized parameters for , such as invoke identifiers (unique IDs for tracking requests across associations) and scope specifiers (to target specific objects). handling is managed through a generic error structure in responses, featuring error codes and supplementary details; service-specific errors include AccessDenied (for failures) and ObjectInvalidated (for obsolete references), ensuring robust fault reporting without disrupting the abstract interface.

ISO 9506-2: Protocol Implementation

ISO 9506-2:2003 specifies the protocol implementation for the Manufacturing Message Specification (MMS), defining the concrete mechanisms for exchanging messages between client and server systems in industrial environments. This part of the standard realizes the abstract services outlined in ISO 9506-1 through a set of protocol data units (PDUs) encoded using Abstract Syntax Notation One () as per ISO/IEC 8824 for defining the abstract syntax and Basic Encoding Rules (BER) as per ISO/IEC 8825 for the transfer syntax, ensuring across OSI communications. The protocol supports both confirmed and unconfirmed services, with PDUs structured to include essential fields such as an invokeID for correlating requests and responses, a serviceSelector to identify the invoked service, and parameter sequences tailored to each service's requirements. The core PDUs include the Confirmed-RequestPDU, which initiates a service invocation with fields like invokeID (an Unsigned32 value for unique identification), serviceSelector (specifying the service, e.g., "read" or "write"), and a confirmedRequest parameter sequence containing service-specific data such as variable access specifications. The Confirmed-ResponsePDU mirrors this structure for replies, featuring the invokeID, serviceSelector, and confirmedResponse parameters with results like data values or status indicators. For error conditions, the Confirmed-ErrorPDU conveys failures using the invokeID, an optional modifierPosition (indicating the error location in parameter lists), and a serviceError field that categorizes issues into classes such as definition errors (e.g., objectUndefined with code 1, indicating a referenced object does not exist) or service errors (e.g., mistypedParameter, signaling invalid parameter types). These PDUs are encapsulated within ACSE (Association Control Service Element) primitives as defined in ISO/IEC 8649 and ISO/IEC 8650, which manage application associations through services like A-ASSOCIATE for initiation, A-RELEASE for conclusion, and A-ABORT for termination; however, some TCP/IP-based implementations omit full ACSE usage for simplified connection handling. Error handling in the protocol follows standardized procedures, where the receiving MMS protocol machine (MMPM) detects anomalies such as invalid PDUs or unhandled service errors and responds with a Confirmed-ErrorPDU containing diagnostic details in the serviceError, including an optional additionalCode for further specificity and additionalDescription for textual explanations. Reject PDUs address low-level protocol violations, like unknown PDU types, ensuring robust fault isolation without disrupting the association. Conformance requirements outline implementation levels to accommodate varying device capabilities, with basic support mandating a minimal subset of core services and PDUs (e.g., essential and data access operations) for simple applications, while full support requires comprehensive coverage of all defined services, error handling, and optional features like advanced object modeling. Vendors must declare supported services and protocol elements in a conformance statement, enabling testing without prescribed test suites in the standard itself.

Architecture and Models

Object Model

The object model in the Manufacturing Message Specification (MMS), as defined in ISO 9506-1, provides a standardized, hierarchical representation of manufacturing devices and their data for in industrial automation systems. It abstracts physical devices into virtual objects, enabling uniform access and manipulation through MMS services, while hiding implementation-specific details of the underlying hardware or software. At the core of the model is the Virtual Manufacturing Device (VMD), the top-level object that virtually represents a physical manufacturing device, such as a programmable controller or sensor network. The VMD serves as the root container for all other objects, managing and providing attributes like vendorName, modelName, logicalStatus, and physicalStatus to describe the device's identity and operational state. All MMS communications occur within the scope of a VMD, which can contain multiple instances of subordinate objects, forming a scoped naming (e.g., VMD.Domain.Variable) for referencing. MMS defines 15 primary object classes to model various aspects of manufacturing systems, organized hierarchically under the VMD: Domain, Program Invocation, Variable, Named Variable List, Named Type, Journal, File, , Event Condition, Event Action, Event Enrollment, Event Condition List, Unit Control, Operator Station, and VMD itself. Key among these are Domains, which act as logical memory partitions for storing programs, data, and resources, with attributes including name, state (e.g., loaded or running), , and creationTime. Program Invocations represent executable instances of programs within a Domain, featuring attributes like name, state (e.g., idle or running), and references to controlling Domains, allowing for start, stop, and status monitoring. Data representation relies on Variables, which model real-time data points such as sensor readings or control parameters. Named Variables are identified by unique object names within the hierarchy and include attributes like type, accessRights, and current value. Unnamed Variables provide flexible access without names, using numeric, symbolic, or unconstrained addressing for direct memory or register references. Variables can be grouped into Named Variable Lists for efficient batch operations, with attributes specifying the list of referenced variables and individual operation outcomes. Custom data structures are defined via Named Types, which encapsulate reusable type definitions, including primitive types (e.g., Boolean, Integer, Unsigned, Floating-Point, Octet-String, Visible-String, Binary-Time, BCD) and constructed types like Array (ordered collections with specified base type and dimensions) and Structure (heterogeneous records of named components). Additional types include Bit-String and BooleanArray for compact binary data. Each object in the model possesses a set of attributes accessible for querying and modification, with relationships enforced through scoping (e.g., Variables residing in Domains or the VMD) and references (e.g., Program Invocations linking to Domains). The modeling approach abstracts real-world entities—such as sensors modeled as Variables or actuators as Program Invocations—for uniform, device-agnostic access, supporting dynamic operations like create, delete, and rename to adapt to changing system configurations. This structure, defined using notation, ensures that MMS clients can interact with diverse manufacturing devices without proprietary knowledge.

Communication Stacks

The (MMS), defined in ISO 9506, operates at the of the OSI reference model, relying on underlying communication stacks for reliable data transport in industrial environments. The original stack, established with the standard's first edition in 1990, follows the full seven-layer OSI architecture, positioning MMS atop the presentation, session, and transport layers. Specifically, it uses ISO Transport Protocol Class 4 (TP4) for end-to-end reliable, connection-oriented service, often over network protocols like X.25 for wide-area connectivity or Connectionless Network Protocol (CLNP) for local networks. At the and physical layers, it supports media such as Ethernet (ISO 8802-3) or (ISO 8802-5), with MMS servers listening on port 102 for incoming connections. This configuration ensured interoperability in early manufacturing automation protocols like , emphasizing error detection, recovery, and flow control through TP4's capabilities. To adapt MMS for IP-based networks, the TCP/IP stack mapping was introduced via RFC 1006, which emulates ISO transport services (specifically Class 0) over TCP, predating the 2003 revision of ISO 9506-2 that formalized its use in Annex F. This involves Transport Protocol Data Units (TPDUs) encapsulated in TPKT headers for length indication and prefixed with Connection-Oriented Protocol (COTP) elements to maintain OSI semantics, all carried over TCP on port 102. TCP handles segmentation, reassembly, and reliability, allowing MMS Protocol Data Units (PDUs) to traverse internetworks without native OSI infrastructure, thus enabling broader deployment in mixed environments. Implementations verify this stack for compatibility, ensuring seamless PDU exchange between MMS clients and servers. Beyond core OSI and TCP/IP, MMS supports mappings to specialized industrial networks for constrained settings. For fieldbuses like , MMS services are tunneled over the bus protocol, facilitating device integration in distributed control systems while preserving application-layer semantics. Point-to-point links use or HDLC framing at the physical and layers, suitable for direct device connections in testing or legacy setups, with TP4 or equivalent providing transport reliability. MMS supports modern implementations over TCP/IP for standards like , enabling client-server communication in substation automation, while real-time requirements are addressed by other protocol mappings in (e.g., for fast messaging). In client-server interactions, communication begins with the Initiate service to establish an association, negotiating parameters like maximum PDU size and functional units via ACSE primitives. PDUs are then exchanged over the active stack for service invocations, with the Conclude service enabling orderly teardown or Abort for immediate release. integrates lists (ACLs) on MMS objects, restricting operations based on client identity and privileges, often combined with OSI features for in critical applications. Conformance testing mandates basic stack implementation—such as TP4 over OSI or RFC 1006 over TCP/IP—to ensure , with validation focusing on association handling, PDU encoding, and error recovery across vendors. This includes verifying port 102 usage and transport class support (e.g., Class 0 or 4) to guarantee consistent MMS deployment in heterogeneous networks.

Services

Management Services

Management services in the Manufacturing Message Specification (MMS) provide essential functions for establishing, maintaining, and terminating associations between clients and servers, as well as managing virtual manufacturing devices (VMDs), domains, program invocations, journals, and semaphores. These services form the foundational layer for and in industrial automation systems, enabling controlled setup and oversight of manufacturing processes without directly handling data manipulation. Defined in ISO 9506-1, they ensure reliable interaction in distributed environments by specifying request and response parameters that support across MMS implementations. The standard also includes additional categories such as Unit Control, Event Action, and File Management services for comprehensive object management.

Environment Services

Environment services handle the initiation and conclusion of MMS associations, which are critical for establishing communication sessions between a client (initiator) and a server (responder). The Initiate service sets up an association by specifying parameters such as the Called AP Title (identifying the target server), Calling AP Title (identifying the client), and additional parameters that may include expected or unexpected application details to negotiate session capabilities. This service allows for flexible association establishment, accommodating variations in protocol versions or service support. The Conclude service, in contrast, terminates the association either gracefully (with confirmation of closure) or ungracefully (immediate disconnection), requiring no specific parameters beyond the implicit session , thus ensuring clean teardown to free resources and prevent lingering connections.

VMD Support Services

VMD support services facilitate querying and of the server's capabilities and state, providing clients with metadata about the available resources. The Identify service retrieves basic identification information about the VMD, such as its , model, and revision details, with no input parameters required, allowing clients to verify compatibility upon association. The GetNameList service enables of named objects within a specified scope, using parameters like ObjectClass (e.g., domain or variable) and ObjectScope (e.g., VMD-specific or AA-specific) to list relevant items systematically, which supports discovery without exhaustive searches. Complementing these, the Status service queries the current state of the VMD, including operational mode (e.g., running or halted) and local detail flags for extended information, again without parameters, to monitor server health and readiness.

Domain Management

Domain management services oversee the deletion and transfer of domains, which represent logical groupings of programs and resources in MMS. Domains are created indirectly by downloading or loading content using services like InitiateDownloadSequence and LoadDomainContent. The DeleteDomain service removes an existing domain specified by DomainName, ensuring all dependent resources are cleared to maintain system integrity. For content transfer, the InitiateDownloadSequence service begins a sequence for segmented downloading of a domain's contents to the server, using DomainName to target the recipient, followed by DownloadSegment services for each portion of large transfers. The InitiateUploadSequence service mirrors this for uploading from the server, initiating the process with DomainName to enable retrieval of domain in chunks, followed by UploadSegment services. Additionally, the LoadDomainContent service loads a complete domain from a specified file or source into the named DomainName, streamlining bulk program and transfer for reconfiguration tasks.

Program Invocation Management

Program invocation management services control the lifecycle of executable programs within domains, allowing dynamic loading and execution control. The CreateProgramInvocation service instantiates a program using ProgramInvocationName and an optional DomainName, preparing it for execution by allocating necessary resources. Once created, the Start service launches the invocation with ProgramInvocationName, initiating runtime operations. The Stop service halts execution for the specified ProgramInvocationName, pausing activities without termination. For interruption recovery, the Resume service restarts a stopped invocation using ProgramInvocationName, restoring prior state where possible. The DeleteProgramInvocation service removes the invocation by name, deallocating resources upon completion or abortion. Finally, the GetProgramInvocationAttributes service retrieves details like state, visibility, and execution priority for a given ProgramInvocationName, aiding in monitoring and management.

Journal and Semaphore Services

Journal and semaphore services support logging and resource , essential for auditing and concurrent in MMS environments. The CreateJournal service establishes a new journal with JournalName and an optional Description parameter, configuring it to record events or variable changes for later retrieval. For synchronization, the TakeControl service acquires control of a named SemaphoreName, blocking if unavailable to enforce on shared resources like domains or variables. The corresponding RelinquishControl service (functionally equivalent to Give ) releases the semaphore for the specified SemaphoreName, allowing other clients to proceed and preventing deadlocks in multi-client scenarios. Semaphores are created and configured using the DefineSemaphore service.

Data Access and Control Services

The Data Access and Control Services in the Manufacturing Message Specification (MMS), as specified in ISO 9506-1, enable real-time interaction with process data, event monitoring, operator interfaces, synchronization mechanisms, and audit logging within industrial automation systems. These services facilitate direct manipulation of variables and related objects on remote servers, supporting applications that require precise control and notification in manufacturing environments.

Variable Access

Variable Access services provide mechanisms for clients to retrieve, update, and manage variables, including both named and unnamed types as well as variable lists, ensuring efficient exchange without disrupting ongoing operations. The Read service retrieves the current value(s) of one or more specified variables, supporting both individual and array accesses for monitoring process states. The Write service updates the value(s) of specified variables, allowing controlled modifications to process parameters while enforcing server-side access rights. The DefineNamedVariable service creates a named variable on the server, specifying its type, , and initial value to extend the available dynamically. Conversely, the DeleteVariableAccess service removes the attributes of a named variable, effectively deleting it from the server's . The GetVariableAccessAttributes service queries the attributes of a variable, such as its , size, and access permissions, aiding in compatibility checks before operations. Additionally, the DefineNamedVariableList service establishes a named list of variables, enabling grouped read or write operations for optimized access to related data sets.

Event Management

Event Management services support the definition, monitoring, and reporting of conditions tied to variable changes, crucial for asynchronous notifications in control systems. The DefineEventCondition service creates an event condition linked to one or more variables, specifying thresholds or transitions that trigger notifications. The DeleteEventCondition service removes a previously defined event condition, freeing server resources when monitoring is no longer required. To adjust ongoing surveillance, the AlterEventConditionMonitoring service enables or disables monitoring for an event condition or modifies its parameters, such as evaluation intervals. Upon receiving notifications, the AcknowledgeEventNotification service allows clients to confirm receipt, helping servers track notification delivery status. The ReportEventConditionStatus service delivers the current status of an event condition, including whether it is active and any associated alarms. Finally, the GetEventConditionAttributes service retrieves details of an event condition, such as its class, severity, and monitored variables.

Operator Communication

Operator Communication services bridge human-machine interfaces by allowing servers to output information and solicit responses from operators, enhancing interactive control. The Output service transmits text messages to an operator's display for informational or alerting purposes, such as status updates or prompts. The Input service requests and receives input from an operator, typically via a specified interface, to capture decisions or parameters. For proactive updates, the UnsolicitedStatus service sends asynchronous notifications to operators about system states or events without prior request.

Semaphore Extensions

Semaphore extensions build on basic synchronization primitives by providing status reporting and definition for concurrent in multi-client scenarios. The ReportSemaphoreStatus service queries or reports the current state of a , indicating availability for resource locking. Semaphores are initialized through the DefineSemaphore service with parameters such as queue size and priority, to prepare them for take/give operations.

Journal Management

Journal Management services handle the creation, retrieval, and maintenance of logs for auditing and historical analysis of system events. The ReadJournal service extracts specific entries from a journal based on time ranges or criteria, supporting forensic reviews. The ReportJournalStatus service provides an overview of a journal's contents, including entry counts, storage utilization, and summaries of identifiers and timestamps. To manage storage, the DeleteJournal service removes an entire journal or selected entries, preventing overflow.

Applications and Extensions

Industrial Usage

MMS is primarily employed for device monitoring and control within Supervisory Control and Data Acquisition () systems, enabling real-time data exchange between programmable logic controllers (PLCs) and supervisory applications. It facilitates PLC programming and (RTU) access in distributed control environments, supporting factory automation tasks such as process and equipment status reporting. In these setups, MMS provides a standardized application-layer protocol for abstracting device-specific details, allowing heterogeneous industrial devices to interoperate without custom interfaces. In power utilities, MMS integrates with IEC 61850 for substation automation, where it serves as the core protocol for client-server communications between intelligent electronic devices (IEDs) and SCADA systems, enabling efficient data polling and control commands across station buses. For wind farm control, MMS underpins IEC 61400-25, facilitating uniform for monitoring turbine status, performance metrics, and remote operations in plants, often mapped to TCP/IP for scalability. In process industries, MMS supports (NC) machines and industrial robots by standardizing message exchanges for task coordination, such as tool path adjustments and positioning in automated assembly lines. Implementation of MMS encounters challenges in vendor conformance testing, as variations in protocol interpretation can lead to interoperability issues during integration of multi-vendor equipment in industrial control systems (ICS). Security vulnerabilities are prominent, with MMS lacking native encryption or authentication mechanisms, necessitating reliance on underlying transport layer security like TLS to mitigate risks such as unauthorized access and man-in-the-middle attacks in exposed networks. Recent research in 2024 identified five vulnerabilities in commercial and open-source MMS implementations used in power substations, further highlighting the importance of securing MMS deployments. Performance constraints arise in high-latency environments, where MMS's request-response model may introduce delays in time-critical applications, prompting optimizations like gateway-based filtering to reduce bandwidth usage. MMS continues to be used in legacy ICS, particularly through standards like , with challenges in migrating from older systems. The (MMS) serves as a foundational protocol in several domain-specific standards for industrial and power systems, providing a common application layer for object-oriented data exchange and services. In particular, MMS is integral to standards that extend its capabilities for specialized applications such as substation automation and telecontrol. IEC 61850, first published in 2003 and subsequently updated, adopts MMS as its primary for substation automation systems, enabling the mapping of abstract communication service interface (ACSI) models—such as logical nodes—to concrete MMS objects and services over TCP/IP networks. This integration supports both time-critical and non-time-critical data exchanges in distributed architectures, facilitating among intelligent electronic devices (IEDs) in electrical substations. Similarly, TASE.2, standardized in 1997 as a telecontrol application service element (TASE), leverages MMS to define the exchange of real-time power system between control centers, utilizing MMS services for association control and transfer while extending them with conformance blocks for utility-specific functions like periodic scanning and event reporting. The event services in TASE.2, for instance, mirror MMS definitions for information reporting and unsolicited status changes, ensuring a unified layer for across wide-area networks. IEC 61400-25, introduced in 2006 for plant communications, profiles MMS services to support monitoring and control of wind turbines, mapping logical device models to MMS virtual manufacturing devices (VMDs) and utilizing services like read, write, and reporting for data access in . This approach allows standardized between controllers and supervisory systems, independent of underlying networks. The Utility Communications Architecture (UCA), outlined in IEEE Technical Report 1550 from the late 1990s, was an early adopter of MMS in electric utilities, specifying its use for object-based messaging in substation and distribution automation to promote vendor interoperability prior to the evolution into IEC 61850. Beyond these, MMS influences integrations in modern industrial protocols, including mappings to OPC UA for enhanced security and platform independence in process automation, as well as extensions in Profinet for real-time Ethernet communications in manufacturing. While MMS has no direct successors, its object model and service paradigms inform adaptations in Industrial Internet of Things (IIoT) environments, such as encapsulating MMS payloads over MQTT for lightweight pub-sub messaging or combining with OPC UA PubSub for scalable data distribution. These extensions highlight MMS's role as a common interoperability layer, reducing protocol silos in utility and automation ecosystems.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.