[西门子] 西门子200smartPLC与TIA wincc通讯(modbus TCP)

[复制链接]
查看168 | 回复0 | 2024-5-14 07:41:03 | 显示全部楼层 |阅读模式



导读

之前分享了如何使用经典WINCC与200 SMART连接,但还有很多朋友使用博途WINCC来开发界面,今天我们介绍下用博途WINCC与200 SMART通讯,依然使用ModbusTcp协议,该方法适用于支持标准ModbusTcp(服务器)协议的任何设备。



注意:博途wincc只能做ModbusTcp客户端,不能做服务器。所以连接的对象只能是ModbusTcp服务器。



一、200SMART 做服务器

STEP7-Micro/WIN SMART 从V2.4版本开始,软件中直接集成Modbus TCP库指令,无需单独安装或者购买。安装软件后,ModbusTCP 指令位于STEP7-Micro/WIN SMART项目树中“指令”文件夹的“库”文件夹中。如图1.ModbusTCP库指令所示。指令分为客户端和服务器两种,我们这里需要使用服务器指令(ModbusTCP Server),具体操作如下:

图1


1、系统块中设置服务器的IP地址,以确保IP地址设置无误。此步骤为可选,如果确定IP地址设置无误,可忽略此步骤。设置方法如图2.所示。

图2


2、鼠标点击MAIN 主程序的程序段1的编程区域,从库文件夹下找到Modbus TCP 服务器指令MBUS_SERVER,鼠标双击,指令出现在程序段1中,操作如图3.所示。

图3


3、填写服务器指令参数,如图4.所示。

图4


参数及类型
数据类型
说明
Connect
IN
BOOL
=1:服务器接受来自客户端的请求;=0:服务器可以断开已经建立的连接
IP_Port
IN
WORD
服务器本地端口号
MaxIQ
IN
WORD
对应数字量输入/输出点(对应Modbus                                        地址参数0xxxx或者1xxxx)可设置范围:0-256,=0表示禁用对输入和输出的所有读取和写入。建议将                                        MaxIQ                                        值设置为                                        256。
MaxAI
IN
WORD
对应模拟量输入参数(对应Modbus                                        地址参数                                        3xxxx)可设置范围:0-56。=                                        0表示禁用对模拟量输入的读取。要允许访问所有                                        CPU                                        模拟量输入,MaxAI                                        的建议值如下:对于                                        CPU                                        CR40 和                                        CR60,为                                        0对于所有其它                                        CPU                                        型号,为                                        56
MaxHold
IN
WORD
用于                                        Modbus                                        地址                                        4xxxx                                        或                                        4yyyyy                                        的                                        V                                        存储器中的字保持寄存器数。
HoldStart
IN
Dword
指向                                        V                                        存储器中保持寄存器起始位置的指针
Done
OUT
BOOL
TRUE:以下任一条件时为真:客户端已与服务器建立连接;客户端已与服务器断开连接;客户端已接收                                        Modbus                                        响应;发生错误
FALSE:客户端正忙于建立连接或等待来自服务器的                                        Modbus                                        响应。
Error
OUT
BOOL
出现错误,仅一个周期有效


4、鼠标选中程序块文件夹,单击右键,下拉菜单中选择库存储器,如图5.所示。

图5.点击库存储器


5、在库存储区分配对话框中手动输入存储区的起始地址。此实例为VB5340开始,以使指令库可以正常工作。确保库存储区与程序中其他已使用的地址不冲突。使用建议地址无法确定是否有地址重叠,所以推荐手动输入正确的库存储区首地址。如图6.所示。

图6.库存储区地址分配


6、编译项目,下载程序。至此PLC端工作完成,下面让我们进行TIAWINCC的配置吧。





二、TIA WINCC组态

在此使用TIAV16 WINCC Advanced做演示(Professional版也是如此)



具体操作如下图所示:


1、先创建TIA项目,然后切换到项目视图下点击——添加新设备,在弹出的窗口中选择——PC系统——选择WinCC RT Advanced——点击确定;



2、在右侧的目录中选择——常规IE,双击添加到插槽中(如下图)。



3、选中刚刚添加的网卡右键点击——属性,选择以太网地址——设置目标计算机的地址,此时我们使用本机地址192.68.0.208;实际项目中请使用运行wincc项目的计算机IP。




4、创建连接,点击——连接——双击——添加,将自动创建一条连接,我们需要对该连接参数进行设置。



首选需要更改(名称可以默认,有多条连接时建议更改,此处我改为“ModbusTCP_dev”)“通讯驱动程序”——ModiconModbusTCP/IP;然后更改CPU类型,服务器IP,更改字顺序(该选项只针对32位数据,对16位数据无效,我们需要通讯32位数据时视情况勾选),操作如下图所示。



需注意通讯对象为其他设备时,需通过测试确定“更改字顺序”是否需要勾选。


5、创建变量,创建自己需要通讯的变量,这里需要注意的是,V区对应是我们在程序中设置的起始地址,若设置的为&VB0,那么40001对应的即使VW0(如果程序中设定的是&VB100,那么40001对应的就是VW100),往后依次推算。输入点对应的1x,输出点对应的是0x。


设置好对应的数据类型,以及地址的对应关系(如下图)。



此处分别建立了VW0、VD2、Q0.0、I0.0四个变量为例子。随后在画面中建立四个IO域关联变量(该过程不做赘述),运行项目后即可看到PLC对应的值(如下图所示)。








总结



以上就是整个TIAWINCC 与西门子200SMART PLC连接的步骤,文章中的2、3步骤可以省略,本文同样也适用于TIAWINCC 连接其他第三方支持ModbusTcp通讯的设备,若内容如有错误请联系我们(技成科技—技术支持中心)。




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则