用C#与三菱Q系列内置以太网口用socket通信的问题

54218678 2016-10-12 11:34:43

private void RAddressLoading()//连接PLC
{
try
{
TcpClient tcpClient = new TcpClient(this.dataManager.PLCIPAddress, this.portNo);
NetworkStream stream = tcpClient.GetStream();
byte[] array = new byte[1100];
try
{
this.lvRAddress.Items.Clear();
byte[] array2 = new byte[]
{
80,
0,
0,
0,
255,
3,
0,
12,
0,
10,
0,
1,
4,
0,
0,
0,
0,
0,
175,
5,
0
};
array2[2] = (byte)this.dataManager.PLCPacketNet;
array2[3] = (byte)this.dataManager.PLCPacketPLC;
array2[4] = (byte)(this.dataManager.PLCPacketIO & 255);
array2[5] = (byte)((this.dataManager.PLCPacketIO & 65280) >> 8);
array2[6] = (byte)this.dataManager.PLCPacketStation;
this.PLCReadingStartAddress = 0;
this.PLCReadingSize = 100;
array2[15] = (byte)(this.PLCReadingStartAddress & 255);
array2[16] = (byte)((this.PLCReadingStartAddress & 65280) >> 8);
array2[17] = (byte)((this.PLCReadingStartAddress & 16711680) >> 16);
array2[19] = (byte)(this.PLCReadingSize & 255);
array2[20] = (byte)(this.PLCReadingSize >> 8);
stream.Write(array2, 0, array2.Length);
Array.Clear(array, 0, array.Length);
stream.Read(array, 0, array.Length);(卡在这一步)
this.ParserACK(array2, array);

请大家帮忙看一下,以上是一个连接三菱Q系列PLC内置网口的一个程序。
用的是三菱的MC协议,使用socket进行通讯,但是当走到这一步时就会卡住不动,本人初学,望大家可以说的详细一些,谢谢。



这个是逐语句进行的截图,上一步还是有内容的,下一步就什么都没有了,卡死在这里了。




...全文
6152 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40106328 2017-09-05
  • 打赏
  • 举报
回复
楼主 能给一下 你的程序代码嘛 想学一下c#与Q plc的通讯 谢谢啦 173749726@qq.com
baidu_33887596 2017-07-27
  • 打赏
  • 举报
回复
你好!可以发我一份吗?382153314@qq.com
埃和智能 2017-06-27
  • 打赏
  • 举报
回复
直接到这里下载一个源代码: http://blog.sina.com.cn/s/blog_16d7d3ecb0102x6wj.html
qiongli2946 2017-05-03
  • 打赏
  • 举报
回复
嗯,看你的发送指令就知道这不是用的MC指令,而是mdbusTcp,这样的话plc是不可能有响应的,如果是加模块的话,好像有的模块为了能连接其他品牌的PLC是支持modbusTcp协议的,所以就不会有问题。我昨天也接了个三菱Q系列PLC与上位机通信的案子,在搞这个!
埃和智能 2017-04-21
  • 打赏
  • 举报
回复
有专门的dotnet的DLL程序集的啊,须要的朋友可发邮件到 liuflamp@126.com
埃和智能 2017-04-21
  • 打赏
  • 举报
回复
有专门的dotnet的DLL程序集的啊,须要的偏移可发邮件到 liuflamp@126.com
lyuzhizhang 2017-04-08
  • 打赏
  • 举报
回复
能加个联系方式吗,785492553,求Q系列设置及程序代码,项目急用……非常感谢
wxf19872008 2016-10-30
  • 打赏
  • 举报
回复
能和你成为好友吗?452745065
gecambridge 2016-10-25
  • 打赏
  • 举报
回复
能把你的源码贡献一份吗?大神
54218678 2016-10-12
  • 打赏
  • 举报
回复
我是这么理解的,不知道对不对,array的赋值是问PLC要来的,那么你的意思就是PLC没有给他值咯?一直在等待PLC给它赋值的意思?
stherix 2016-10-12
  • 打赏
  • 举报
回复
你那个stream.Read很可能是如果没读到数据则不会返回的 所以对方没法数据过来 就一直等在那了
EnForGrass 2016-10-12
  • 打赏
  • 举报
回复
array一直没赋值啊
54218678 2016-10-12
  • 打赏
  • 举报
回复
这个是内置以太网口的设置。

54218678 2016-10-12
  • 打赏
  • 举报
回复




以上问题我将内置以太网模块更换成外置以太网模块后得以解决,上面是配置信息,但是还没有搞明白,不知道是否有人清楚?

111,092

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧