与三菱Q系列PLC-TCP通信(MC协议)学习总结
2015-09-13 16:39
2051 查看
2015/09/14
最近几天在做C#代码与三菱Q系列PLC TCP通信(MC模式)读写数据寄存器的功能,留此调试文档。
三菱Q系列PLC通信协议有很多种,本次选择了MC,MC内发送数据有ASCII方式和二进制方式,通信模块有内置以太网模块(与CPU一起)和以太网扩展模块,不同的模块设置参数的方式同,本次使用的是内置式的,
下图为内置式网口设置界面
下图为以太网模块参数设置界面
MC的协议方式有A-1E模式和Qna-3E模式、Qna-4E模式,尝试了前两种;A-1E为较早的通信版本,对地址的操作范围有限(数据寄存器区的D0~D6143、D9000~D9255),Qna-3E可访问D0~D12287数据
A-1E协议:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/803932960c39c022153b70004c413c94)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/b22435062def4a65eba1b2d52ae97526)
Qna-3E协议:
二进制方式
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/7d25ae66778c2081c390119e94297980)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/12d6bff4b5975c43d83be095d8f905df)
ASCII方式
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/a140135e468a0b08773a2257045d36b8)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202006/05/3690f580dcdde254d440dff06b31a662)
请求数据长度计算为之后的所有数据,二进制方式两个数字为一个字,ASCII为一个数字一个字,二进制发送时数据的高低位需要调换,ASCII发送带字母起始地址式会返回错误(待解决)。
数据回复
异常回复:0b 00 5b c0 00 ff ff 03 00 01 14 00 00
成功回复:d0 00 00 ff ff 03 00 02 00 00 00
字符串转换为二进制数据:
byte[] bytes =
new byte[str.Length / 2];
for (int i = 0; i < str.Length; i += 2)
bytes[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16);
最近几天在做C#代码与三菱Q系列PLC TCP通信(MC模式)读写数据寄存器的功能,留此调试文档。
三菱Q系列PLC通信协议有很多种,本次选择了MC,MC内发送数据有ASCII方式和二进制方式,通信模块有内置以太网模块(与CPU一起)和以太网扩展模块,不同的模块设置参数的方式同,本次使用的是内置式的,
下图为内置式网口设置界面
下图为以太网模块参数设置界面
MC的协议方式有A-1E模式和Qna-3E模式、Qna-4E模式,尝试了前两种;A-1E为较早的通信版本,对地址的操作范围有限(数据寄存器区的D0~D6143、D9000~D9255),Qna-3E可访问D0~D12287数据
A-1E协议:
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
![](http://blog.csdn.net/xy943294069/article/details/file:/C:\Users\Admin\AppData\Roaming\Tencent\Users\943294069\QQ\WinTemp\RichOle\E%{U7YT9FEBIQ)13{G0KTUD.png)
Qna-3E协议:
二进制方式
ASCII方式
请求数据长度计算为之后的所有数据,二进制方式两个数字为一个字,ASCII为一个数字一个字,二进制发送时数据的高低位需要调换,ASCII发送带字母起始地址式会返回错误(待解决)。
数据回复
异常回复:0b 00 5b c0 00 ff ff 03 00 01 14 00 00
成功回复:d0 00 00 ff ff 03 00 02 00 00 00
字符串转换为二进制数据:
byte[] bytes =
new byte[str.Length / 2];
for (int i = 0; i < str.Length; i += 2)
bytes[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16);
相关文章推荐
- Java网络编程 获取本地主机名称和地址
- HDU 5446 Unknown Treasure (2015年长春赛区网络赛J题)
- Linux C语言程序设计(十九)——基于UDP的网络编程
- 2015.9.13 VIM、权限和网络管理
- 2015长春网络赛小结
- windows网络远程关机重启
- (转)Http学习之使用HttpURLConnection发送post和get请求
- hdu 5442 长春区域赛网络赛 1006 Favorite Donut(后缀数组)
- TCP包服务器接受程序
- hdu 5444 长春区域赛网络赛 1008 Elven Postman(模拟)
- Muduo 网络库c++
- hdu 5446 长春区域赛网络赛1010 Unknown Treasure(lucas定理+中国剩余定理+移位乘法)
- hdu 5441 长春区域赛网络赛 1005 Travel(并查集)
- 2015长春网络赛 ACM/ICPC Asia Regional Changchun Online
- 《第一行代码》读书笔记(十)----网络编程
- 使用HttpClient4提交包含上传文件的表单
- Java网络编程之获取IP地址:InetAddress类
- HTTP状态码详解
- 代码篇C#网络编程之UDP进程通信
- 代码篇C#网络编程之tcp异步客户端