如何用C#语言 让pc与plc通过plc tcp ipp互联

2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
本帖子已过去太久远了,不再提供回复功能。每日登录:+1西币&+1积分
&下次自动登录
绑定第三方账号登录 & & &
扫描二维码登录支持中心移动端
获取动态密码
售前文档售后文档热门视频系列热门版区售后服务概述自助服务帮助信息
You are here:
怎样用以太网建立PLC和PG电...
热点活动:
置评已完成,谢谢!
您现在可以为该问题添加标签。
怎样用以太网建立PLC和PG电脑的连接 - 已解决问题
一台戴尔笔记本,S7-300PLC,通过以太网在PLC和交换机建立连接。现将电脑和交换机通过以太网建立正确连接。网线插头灯闪烁,说明通讯正常。通讯连接选项:TCP/IP-Broadcom&Net,准备备份PLC程序,PLC--UPload&&点击显示,输入到目标站点的链接提供IP地址,和MAC地址,貌似已经找到以太网的通讯连接,但是上传PLC程序时,提示输入的站点地址不完整,请填写所有输入域。上传PLC程序不成功。&特求助大家,怎样用电脑和PLC通过以太网上传下载PLC程序。新手,请大家就以太网通讯建立等知识详细介绍一下,谢谢大家!
产品版区:
悬赏西币:1 | 解决时间: 08:49:57 | 提问者:& - 助理工程师&nbsp&nbsp第8级
问题ID:139522
首次下载不需要MPI,直接通过TCP/IP或ISO的方式即可,具体做法是可以通过Step7的PLC-Edit&ethernet&node-Browse搜索您的CP或CPU的集成PN口,在线分配IP地址后就可以直接以TCP/IP的方式进行下载。首先设置STEP7--选项--设置PG/PC&接口里,通过ISO协议建立连接,选对以太网卡名称.(ISO&Ind.&Ethernet&→...)。然后,在STEP7主界面下,选择菜单&PLC------------&Edit&Ethernet&Node(编辑以太网节点),在弹出的窗口中选择Browse...(浏览),就可以找到实际连接的PLC网卡了,里面可以看到MAC和IP地址,选择该网卡后确认返回,然后就可以设置该网卡的IP地址和子网掩码,最后点击按钮Assign&IP&Configuration(分配IP配置),IP地址就成功分配了。最后,访问PLC的时候,把计算机的IP地址设到同一网段,就可以通信了参考资料:
资深顾问&nbsp&nbsp第13级&
以下网友赞了您的问题:
填写您的评论...
提问者对于答案的评价:谢谢大家
已阅,最佳答案正确。
置评专家:西门子自动化产品支持& 08:55:47
本版相关问题
本版精华问答
等您来回答
作者/最新回复
最后回复时间
首先设置SETPG/PCinterface接口为TCP/IP并指向自己计算机的网卡然后,在STEP7主界面下,选择菜单PLC--&Edit&Ethernet&Node(编辑以太网结点),在弹出的窗口中选择Browse(浏览),就可以找到实际连接的PLC网卡了,里面可以看到MAC和IP地址,选择该网卡后确认返回,然后就可以设置该网卡的IP地址和子网掩码,最后点击按钮AssignIPConfiguration(分配IP配置),IP地址就成功分配了最后,访问PLC的时候,把计算机的IP地址设到同一网段,就可以通信了。
- 顶级工程师&nbsp&nbsp第12级
& 15:12:54
你选择的网卡是需要实际的物理网卡,当今新的tia软件支持网线连接的检测(闪烁按钮功能),如果点击那个按钮,cpu有闪烁,说明连接正常。你操作的方法应该是正确的,只是在“PLC--UPload&&点击显示,输入到目标站点的链接提供IP地址,和MAC地址,、、、、、、”需要点击显示,然后再点击确定按钮。
- 超级顾问&nbsp&nbsp第15级
& 15:14:23
机架、插槽号输入没有?一般机架为0、插槽为2
- 初级工程师&nbsp&nbsp第9级
& 15:16:18
你的cpu需要使用带以太网口的通讯模块比如343-1lean。然后设置它的ip,pc在set&pg/pc中设置以太网通讯,把你的pc以太网口和343的设置在同一个ip段。然后就可以通讯了。
- 助理工程师&nbsp&nbsp第8级
& 09:24:58
PG/PC接口选择你的物理网卡。ping一下看看网络通吗?
- 高级工程师&nbsp&nbsp第11级
& 16:03:36
上一页1下一页&
扫描打开手机版
支持中心新发布“关注”功能了!实时查看彼此动态,更方便地进行技术交流。
不管是“关注”与“被关注”,相信都是一个美好的开始!
还有多重奖励派送,快快行动起来吧!
20秒帮我们优化支持中心!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
欢迎您来到找答案
在“找答案”,已有超过7万个被解决的技术问题供您参考!
西门子技术专家亲自把关!常规的,简单的问题,在这里您都可以找到答案!
遇到了问题,就来“找答案”提问。
点击搜索框右侧的提问按钮,只需2步就能成功提交问题!分分钟就有无数大侠前来帮你。
在“找答案”每天都有大量的新问题。
别犹豫,只需要点击问题下方的“我要回答”就能参与。答题不光有积分相送,也会给您积攒大侠人气。
“找答案”定期开展各种有奖活动期待您的参与。
更有机会参加西门子高端用户峰会。领略西门子的博大精深!运用C#编程通过OPC方式实现PC机与西门子PLC通讯-同步通讯篇
1、 OPC服务介绍
  西门子提供的最新软件:Simatic Net PC-Software CD 2005为各种组态软件的开发提供了一个统一的平台,它建立的PC站既为一些组态软件,如:WinCC、Protol等提供了与PLC的通讯平台,也提供了一套接口,可使用高级语言编程通过Simatic Net访问PLC数据。本文讨论的主要就是这个编程接口,最新版的Simatic NET支持五种编程方式:
&1&、ActiveX控件
  提供了一系列数据访问控件,以便于向VB6这种语言使用控件的方式与PLC通讯。
&2&、OPC自动化
为VB6、Dephi等语言运用OLE 自动化的方式进行编程。
&3&、OPC用户接口
  这是专门为VC++提供的一种高效编程方式,其灵活程度与执行效率比前面的两种方式均要高得多。
&4&、针对微软的.NET平台的OPC用户接口
  这也是一种非常灵活的编程接口,不过它针对的是.NET平台,其提供了大量的.NET类库,以便于像VC#、VB.NET等高级语言编程。本文将详细的介绍该接口。
&5&、OPL XML接口
  顾名思义,主要是针对XML编程的。
  对于&2&、&3&、&4&编程方式,他们各自又可以分为同步访问方式和异步访问方式。按西门子的文档解释:同步通讯指的是当一个客户在访问服务器时,其他客户的访问必须等待,直到服务器处理完该客户的请求,才能继续进行下一个服务,异步访问与之正好相反,本文主要讲的是同步编程篇,异步篇以后再提供。
2、 配置OPC服务器
  要进行编程,必须先配置服务器。本文以Prfibus DP网络为例,介绍PC站的配置。其内容主要来自西门子文档。
需要的软件:
Step7 V5.3
Simatic Net PC-Software CD 2005
需要的硬件:
  至少为CP5611或以上级别,笔记本可以为CP5511,带DP口的S7-300 PLC(若使用Simatic NET的仿真功能可以不需要这些硬件,后面会介绍到)
  &1&、组态一个S7站,配置Profibus DP网络,其DP地址设为3,并下载到PLC,然后把网线由MPI口转到DP口。S7站的配置这里就不介绍了。
  &2&、在 Step7 V5.3中建立一个新工程,插入一个PC站,并把该PC站的名字改成与你的计算机名字相同。打开该PC站的硬件组态界面。插入OPC服务器和连接卡CP5611(或者CP5511),他们在PC槽中处的位置可以任意,如下图:
  注:在插入CP5611时,应该选择与组态S7站一样的Profibus网络,并将网络地址设为2,一定不要与PLC的地址冲突。
  然后点击下面工具条标为红色的按钮:
  选中&OPC Server&,然后插入一个新的连接,如下图:
  在弹出的对话框中选择连接类型为S7 Connection,如下图:
  在OK后,然后在新对话框的红色标志位置输入3,表示PLC的地址,如下图:
  并选择Address Details&,设置CPU的槽号为2,如下图:
  OK后,然后编译并保存。
  &3&、然后建立OPC服务器,有两种方式,本文介绍较简单的一种。
  打开,Simatic Net中的Station Configurator,一般安装后,他会自动启动,并点击Import Station&按钮,找到你刚才在Step 7中建立PC站时创建的
  XDBs文件夹下的XDB文件,然后导入成功。
  &4&、可以使用Simatic Net中的OPC Scout,并选择Simatic NET服务,然后在它下面创建组,然后在组下创建变量,这样可以监控PLC数据,VC#编程不需要使用该程序,但熟悉使用OPC Scout有利于了解Simatic Net中的编程结构。
  说明:打开Simatic Net中的Configuration Console,选中S7进行如下的配置后,可以不需要PLC、CP5611等并可以模拟,如下图:
  上面的所有步骤,均可在Configuration Console下,PC Station的根树下,选择相应的帮助文档得到。
3、 OPC编程
&1&、西门子的变量结构如下:
----------------------服务器------------------------------
/ OPC.SimaticNet OPCServer.Wincc .... (一系列类型的服务器)
/ Group1 Group2 Group3 ...(把更新时间一致的变量统一为一个组)
/ Item1 Item2 ... (变量:I、Q、M、DB等,指向网络中某个PC站OPC Server服务的某个连接)
-----------------------------------------------------------------------------------------------------------------
  第一层是不同种类的服务器,如:OPC.SimaticNET类型,OPC.SimaticNET.DP类型,OPCServer.WinCC等一系列类型,这里选择OPC.SimaticNET类型。
第二层是Group,一个服务器下可以有多个组,可以把组理解为扫描周期相同的一系列变量的集合。在开发组态界面时,可以把一个界面中的所有变量统一到一个组中。
第三层是Item,项是指向网络中某个PC站OPC Server服务的某个连接的一系列变量,如:I、Q、M、DB等
&2&、项的命名
  项即Item,在S7连接中针对的直接是PLC中的变量,因此它的命名很重要:
  格式:
其中的protocolID表示连接类型,在上面的组态PC站时可以选择,这里应该与它一致,类型有9种,最常用的为S7,即S7连接,其他类型请参看文档。
  Connectionname:顾名思义,即在上面的组态PC站时产生的连接名,如果使用仿真功能,连接名为DEMO Variablename:变量名有一系列规则,这里举例说明,读者也可以使用OPC Scout创建变量,学习程序是如何生成变量名的。
S7:[DEMO]MB1 :表示连接类型为S7,连接名为DEMO(这里为仿真),变量为MB1
S7:[DEMO]QB0,3: 表示为从QB0开始的三个连续变量。
S7:[DEMO]DB10,X4.6 :表示DB10的DBX4.6。
&3&、添加引用
  在VC#开发环境中添加对OpcRcw.Da库的引用引用,该库属于.NET库,不属于COM库,西门子虽然编写了类库,以提供对.NET平台的支持,但这些类库仍然难于编程,
  里面包含了大量的在托管和非托管区传输数据,因此我们需要在它的基础上再开发一个类库,以简化以后的编程,首先在类的开头使用命名空间:
using System.Runtime.InteropS
using OpcRcw.Da;
using System.C
1、 在类的开头部分生名变量
private string serverType=&&;
private IOPCServer pIOPCS // OPC server接口
private Object pobjGroup1; // Pointer to group object
private int nSvrGroupID; // server group handle for the added group
private System.Collections.Hashtable groupsID=new Hashtable(11); //用于记录组名和组ID号
private System.Collections.Hashtable hitemsID=new Hashtable(17); //用于记录项名和项ID号
private Guid iidRequiredI
private int hClientGroup = 0; //客户组号
private int hClientItem=0; //Item号
2、 创建服务器,编写Open()方法
/// 创建一个OPC Server接口
/// 若为true,创建成功,否则创建失败
public bool Open(out string error)
error=&&;bool success=
//获取 OPC Server COM 接口
iidRequiredInterface = typeof(IOPCItemMgt).GUID;
svrComponenttyp = System.Type.GetTypeFromProgID(serverType);

我要回帖

更多关于 plc modbus tcp setup 的文章

 

随机推荐