我的问题很简单。是否可以在MODBUS上与真实的西门子S7-1200进行TwinCat PLC仿真(TwinCat 3)?据我所收集的,没有英特尔芯片组网卡的PC阻止您使用像EtherCat或Profibus这样的协议。文档中没有提到Modbus TCP需要这样的卡。
我从贝克霍夫网站上尝试使用Modbus TCP示例程序已经有两天了,但没有成功。TCPView显示服务器(PC与TwinCat)和客户端(S7-1200)之间的连接是“建立”的,甚至有些数据包正在交换。我很肯定,它的优点和长度以及所有这些东西都是正确的,但是TwinCat仍然给了我错误26。在西门子方面,MB_Client显示7004,然后7005和7006一个接一个,没有数据进入我的数组。
除了处理示例代码和更改参数之外,在TwinCat端是否还有一些我需要做的事情?(我还用TcModbusSrvCfg.exe设置了服务器)
很抱歉寄了这么长的邮筒。如果你对我还能做什么有任何想法,那就分享吧。
发布于 2022-03-24 14:08:22
就像Kolyur说的,请检查TF6250是否安装在您的机器上。
作为Cliff响应的补充,这里有三个工具可以检查双方的Modbus协议:Anana、Modbus医生、Modbus Twin请求
您实现了哪个Modbus函数,您只需尝试一个简单的Modbus写寄存器(函数16)。
发布于 2022-07-05 01:37:23
我的问题很简单。是否可以在MODBUS上与真实的西门子S7-1200进行TwinCat PLC仿真(TwinCat 3)?
回答你的问题。是的!!你绝对可以!!
除了处理示例代码和更改参数之外,在TwinCat端是否还有一些我需要做的事情?(我还用TcModbusSrvCfg.exe设置了服务器)
所以你的部分问题可能在这里的陈述中。使用TcModbusSrvCfg.exe设置TwinCat PC Modbus TCP服务器,但手册中提供的示例代码是充当Modbus客户端的TwinCat程序。从你的问题上看,我不完全清楚你想要达到什么目的。
第2条内的手册 (撰写本文时的第8页)显示了设置它的两种不同方式。如下图所示;
从你的问题听起来,你已经在西门子上安装了一个Modbus客户端。如果是这样的话,您不需要在TwinCAT程序中实现任何示例代码。手册中提供的示例代码用于Twincat执行Modbus客户端时。我想你可能想要的是遵循第4节的内容。
从较高级别,TwinCAT Modbus TCP服务器将Modbus寄存器映射到TwinCAT内存区域。您需要创建TwinCAT标记并将这些标记分配到适当的内存区域。您可以查看4.3节中的默认映射,也可以使用配置工具上的“”函数导出XML文件,在那里您可以自定义映射,然后再次导入它并应用更改。
我对seimens不太了解,但在我看来,似乎您的西门子客户端实际上正在连接到TwinCAT modbus服务器,但是您还没有在适当的内存区域/地址创建相关的TwinCAT标记。如果希望seimens从TwinCAT读取数据,则需要在分配给TwinCAT内存区域的标记中填充数据。如果希望西门子将数据写入TwinCAT,则需要在TwinCAT中添加标记(同样位于正确的内存区域)以查看数据。
但是,如果希望TwinCAT充当到modbus服务器的客户端连接,则需要遵循第6节。
发布于 2022-09-25 16:49:59
似乎这个问题直接与你的配置有关,硬件本身不应该导致连接问题,就像-kolyur说的,为了测试你应该关闭pc防火墙。
至于modbus服务器的设置,您必须在您的计算机中运行“TcModbusSrcCfg.exe”并设置默认参数(使用您的计算机作为服务器通过端口502),一旦您成功地与PLC西门子在端口502 (默认配置)上进行了连接,您可以尝试修改程序。
贝克霍夫文档已经告诉您默认连接应该使用的库、函数和值,只需确保遵循服务器配置步骤,因为‘在过去,我对modbus有很多问题,只是因为没有将modbus服务器设置正确
如果您想比较变量值,我使用这个用于modbus通信的示例FB从Modbus Festo主版读取IO模块。
https://stackoverflow.com/questions/71568407
复制相似问题