回复:200SMARTV2.2的TCP通讯

Zaxife

  • 帖子

    2450
  • 精华

    31
  • 被关注

    78

论坛等级:至圣

注册时间:2008-07-24

普通 普通 如何晋级?

发布于 2017-05-20 11:35:10

2楼

展开查看
以下是引用tomw在2017-05-19 10:12:00的发言 >0楼

为了调试PC机与PLC的TCP通讯;做了如下事情:

(1)1台PLC SR40, 1台PC机(XP系统),PLC为客户端,PC机为服务端,通讯成功,可读可写;

(2)1台PLC SR40, 1台PC机(XP系统),PC机为客户端,PLC为服务端,通讯成功,可读可写;

(3)2台PLC SR20/SR40, 1台PC机(XP系统),PLC为服务端,PC机为客户端,通讯成功,可读可写;


(4)2台PLC SR20/SR40, 2台PC机(XP系统/Win7-32),PLC为服务端,PC机为客户端,第一台PC机可以和2台PLC链接,读取数据没有问题;第二台PC机可以链接那2台PLC,但是当读取数据时出现如下错误:

(与PC机的操作系统没有关系,与链接的先后有关系)


System.Net.Sockets.SocketException (0x80004005): 远程主机强迫关闭了一个现有的连接。

   在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)

   在 TCP_Client.Form1.timer1_Tick(Object sender, EventArgs e) 位置 G:\TCP_S7-200\TCP_C#\TCP_Client\TCP_Client\Form1.cs:行号 310


在此请各位大侠判断一下,这是什么问题?谢谢!

这里PC端使用C#(VS2010)编程,同步TCP模式。PLC程序中的IP地址设置为4个0(按照V2.2的系统手册要求设置)。


没试过,不清楚是不是像你说的情况。
如果你用C#编程是走编程设备的通讯通道,肯定是只能连接一个上位机的。CPU手册上说了编程设备只能连一个,HMI设备的才可以连8个。
所以,你需要按HMI设备的协议来写C#的socket,曾经项目用过6个PLC和6个精致屏,所有屏可以同时读写所有PLC的数据。
你有测试条件,建议用多条TCP_CONNECT,指定固定的客户端IP地址先测试,感觉不大可能会自动断开连接的。
建议你先用ModbusTCP协议来先测试吧,一开始就没目标是搞不出东西来的。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有9379条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。