It features a simple and easy-to-use API, allowing you to communicate without worrying about MC protocol details. It runs on various platforms, including Linux, Windows, and macOS.
Overview
It features a simple and easy-to-use API, allowing you to communicate without worrying about MC protocol details. It runs on various platforms, including Linux, Windows, and macOS.
README
日本語 | English
McpX is a library for communicating with Mitsubishi Electric PLCs using the MC protocol.
It features a simple and easy-to-use API, allowing you to communicate without worrying about MC protocol details.
It runs on various platforms, including Linux, Windows, and macOS.
Installation
.NET CLI
dotnet add package McpX
Package Manager(Visual Studio)
PM> NuGet\Install-Package McpX
Example Usage
using McpXLib;
using McpXLib.Enums;
// Connect to PLC by specifying IP and port
using (var mcpx = new McpX("192.168.12.88", 10000))
{
// Read 7000 points starting from M0
bool[] mArr = mcpx.BatchRead(Prefix.M, "0", 7000);
// Read 7000 words starting from D1000
short[] dArr = mcpx.BatchRead(Prefix.D, "1000", 7000);
// Write 1234 to D0 and 5678 to D1 as signed 32-bit integers
mcpx.BatchWrite(Prefix.D, "0", [1234, 5678]);
}
C# and Visual Basic samples are available here.
Supported Commands
| Name | Description | Synchronous Method | Asynchronous Method |
|---|---|---|---|
| Single Read | Reads a single value from the specified device. | Read(Prefix prefix, string address) |
ReadAsync(Prefix prefix, string address) |
| Single Write | Writes a single value to the specified device. | Write(Prefix prefix, string address, T value) |
WriteAsync(Prefix prefix, string address, T value) |
| Batch Read | Reads multiple consecutive values starting from the specified address. | BatchRead(Prefix prefix, string address, ushort length) |
BatchReadAsync(Prefix prefix, string address, ushort length) |
| Batch Write | Writes an array of values to consecutive device addresses. | BatchWrite(Prefix prefix, string address, T[] values) |
BatchWriteAsync(Prefix prefix, string address, T[] values) |
| Random Read | Reads values from non-consecutive devices (bit / word / double-word). | RandomRead(Action build) |
RandomReadAsync(Action build) |
| Random Write | Writes values to non-consecutive devices (bit / word / double-word). | RandomWrite(Action build) |
RandomWriteAsync(Action build) |
| Monitor Registration | Registers devices to monitor and returns a MonitorSession. |
MonitorRegist(Action build) |
MonitorRegistAsync(Action build) |
| Monitor Read | Reads the latest values of registered devices via the returned session. | MonitorSession.Read() |
MonitorSession.ReadAsync() |
| Remote Password Lock/Unlock | Automatically locks the PLC with the specified remote password when the instance is created and unlocks it when disposed. | McpX(string ip, int port, string? password = null) |
– |
Supported Protocols
- TCP
- UDP
- 3E frame (binary code)
- 3E frame (ASCII code)
- 4E frame (binary code)
- 4E frame (ASCII code)
Roadmap
- [x]
3E frame (ASCII code) support - [x]
4E frame (binary code) support - [x]
4E frame (ASCII code) support - [x]
UDP support - [ ] GX Simulator support – In progress
Changelog
Related
- mcpx-mcp-server An MCP(Model Context Protocol) server that enables real-time access to Mitsubishi Electric PLC devices from generative AI.
Install
This server does not publish a one-line install command.
Open the repository installation guide