组态王吧 关注:4,403贴子:19,512

组态王与PLCSIM仿真器无实体TCP/IP通讯方法分享

只看楼主收藏回复

我也是这两天才解决的问题。在此之前,几乎是查遍全网,在吧里也有许多甚至是几年前的求助贴,但并没有能找到有效解决方案。其实教程网上是有的,只是如果没有人给你亲自示范过一遍,初学者可能就会因为其中的几个细节而失败,我就是如此。所以此次分享是建立在我所了解到的教程基础上,加入了更多详细的操作步骤。具体内容会在楼下更新,希望能帮助到大家。


IP属地:湖北来自Android客户端1楼2022-06-14 10:44回复
    1.首先目标是实现组态王与PLCSIM之间的TCP/IP通讯,所以必须得先知道自己电脑的IP地址。注意需要的是IPv4地址,IP地址的查询可以通过cmd输入命令ipconfig获取,也可以是打开任务管理器在性能→以太网中看到,当然还有很多其他的方式。大家在看到这篇帖子前很可能就已经尝试过了,就不再赘述,具体可以百度,非常详细。


    IP属地:湖北来自Android客户端2楼2022-06-14 10:46
    回复
      2.之后我们打开STEP7对PLC进行一些设置。因为学校教的是S7-300/400,所以我更熟悉STEP7,并以S7-300为例。由于我没有使用博图的经验,不敢轻易讲解,如果你使用的是博图,网上也有关于S7-1200与组态王通讯的教程,你可以参考那里的PLC硬件与网络组态部分,其本质是一样的。


      IP属地:湖北来自Android客户端3楼2022-06-14 10:48
      回复
        3.在硬件组态中,选择带PN/DP的CPU,如果选择其他,则需再添加CP343-1模块。
        在网络组态中,如图所示创建Ethernet网络,修改其IP地址与电脑IP同一网段下,比如我的是10.96.187.xx,前三位与电脑一致,后三位可自定,但不能与电脑相连的其他设备冲突。子网掩码改为一致。确认后编译保存即可,暂时不要打开PLCSIM仿真器。


        IP属地:湖北来自Android客户端4楼2022-06-14 10:50
        回复
          4.之后这一步是实现通讯最核心的。需要用到一个软件叫做NETToPLCsim,可自行百度下载。这个软件的作用是通过TCP/IP协议将PLCSIM与电脑连接。以管理员权限打开软件,会提示Warning,确认即可,因为软件需要用到Port 102被占用。这时候打开PLCSIM仿真器,将程序以TCP/IP通讯方式下载到PLCSIM,确认下方IP为你所设置的PLC IP。之后在NETToPLCsim中点击Add,图中红框第一行点击右边..按钮选择电脑IP,第二行选择PLC IP,之后的是导轨号与CPU插槽号可以在硬件组态中看到,S7-300默认为0/2。点击OK,看到Status显示READY后点击Start Server即可。IP是已经被软件检测到的,如果点击..按钮后提示未找到PLC,可能是你没按照我的步骤走,先打开了PLCSIM后才打开的这个软件,或者其他设置原因。




          IP属地:湖北来自Android客户端5楼2022-06-14 10:52
          回复


            IP属地:湖北来自Android客户端6楼2022-06-14 10:55
            回复
              5.一般来说以上步骤照做后不会出现问题,保险起见再次验证PLC可被找到。在cmd中使用 ping"空格"PLC IP,确认是否ping通。打开组态王,我的是6.55版本。在COM中新建设备,PLC下选择西门子S7-300(TCP),之后下一步至IP地址填写部分,这里填写的不再是PLC地址而是你的电脑IP地址,我之所以没成功就是在这出了错。填写格式是xx.xx.xx.xx:0/2,前四位是你的电脑IP,后面冒号的两位是导轨号与CPU槽号,与前面一致默认为:0:2。要切到英文输入法下输入,不然冒号会出错。之后下一步至完成,然后根据你需要创建相应变量即可。


              IP属地:湖北来自Android客户端7楼2022-06-14 10:56
              收起回复


                IP属地:湖北来自Android客户端8楼2022-06-14 10:56
                回复
                  以上教程中也许还会有错误,大概率是我打字打错了,在写这些文字时我又重复了一遍流程,确保是能够正常实现的,所以方法我可以保证是完全正确的。如果你遇到了问题可以在楼下回复我,也可以私聊我,我尽可能帮你解决。


                  IP属地:湖北来自Android客户端9楼2022-06-14 11:01
                  回复
                    这一方法理论上适合所有支持TCP/IP通讯的西门子PLC,也适合使用Snap7访问PLC,我已使用python-Snap7验证过了,之前没能成功也是因为在网络连接函数中使用了PLC地址而不是电脑地址


                    IP属地:湖北来自Android客户端10楼2022-06-14 11:06
                    回复
                      楼主,我有问题想要请教


                      来自iPhone客户端12楼2023-03-12 08:10
                      收起回复
                        这个是有连接实物吗


                        来自手机贴吧13楼2023-04-02 00:19
                        回复
                          不连接实物以太网是断的呀,连接不了netto呀


                          来自手机贴吧15楼2023-04-02 00:22
                          收起回复
                            真的太感谢楼主。我认真试过了,成功了。搞了几天没成功,最后被楼主救了。


                            来自手机贴吧17楼2023-05-08 11:22
                            收起回复
                              楼主,我前面照着你的做了,net to plcsim也能找到PLC的IP ,为什么后面在组态王里修改变量没有反应呢,然后ping 了PLC的ip也PING不通


                              IP属地:广东18楼2023-05-11 15:34
                              收起回复