McProtocol
McProtocol copied to clipboard
三菱plc通信MC协议的实现。(This is a protocol for communicating with Mitsubishi PLCs.)
PMcProtocol
三菱plc通信MC协议的实现。此项目是McProtocol的分支。
This is a protocol for communicating with Mitsubishi PLCs.
拷贝的原项目:[Copy to:]
https://github.com/SecondShiftEngineer/McProtocol
原项目文档:[Original document:]
https://www.nuget.org/packages/McProtocol#readme-body-tab
下载包 [download、install]
Install-Package PMcProtocol
列子:[ensample code:]
WindowsFormsApp1/Form1.cs
开始使用 [How To Use]
方式1 [Method 1]
using McProtocol.Mitsubishi;
McProtocolTcp mcProtocolTcp = new McProtocolTcp("192.168.100.109", 1025, McFrame.MC3E);
await mcProtocolTcp.Open();
//通用方法(可能会淘汰,以后使用泛型的方式)
int[] oData1 = new int[10];//数据
await mcProtocolTcp.ReadDeviceBlock("D14520", 10, oData1);
int[] oData2 = new int[10];//数据
await mcProtocolTcp.GetBitDevice("M85", 10, oData2);
//版本v2.0以后的新扩展方法
var oDataNew1 = await mcProtocolTcp.ReadDeviceBlock("D7500", 10);//以int16方式读取10个
var oDataNew2 = await mcProtocolTcp.GetBitDevice("M85", 10);//以位方式读取10个
方式2[Method 2]
using McProtocol;
//可能会淘汰,此方式存在一个程序只能存在一个的问题
//存储在静态字段 PLCData.PLC 中,全局使用
PLCData.PLC = new McProtocolTcp("192.168.100.109", 1025, McFrame.MC3E);
await PLCData.PLC.Open();
//使用位方式
PLCData<bool> ints = new PLCData<bool>(PlcDeviceType.M, 85, 6);
await ints.ReadData();
//获取结果
var data = ints[0];
//修改数据
ints[0] = !data;
//保存数据
await ints.WriteData();
//使用16位整数方式
PLCData<Int16> ints2 = new PLCData<Int16>(PlcDeviceType.D, 14520, 6);
await ints2.ReadData();
//获取结果
var data2 = ints2[0];
//修改数据
ints2[0] = 3;
//写入数据
await ints2.WriteData();