its*_*des 8 c# web-services plc s7-1200 siemens
我正在尝试访问西门子S7-1200数据库,通过我将在Windows上运行的C#可执行文件设置和读取标签.目的是建立一个可以通过Wi-Fi /以太网与PLC建立连接的桌面应用程序.然后,应用程序将允许用户读出装置的数据(并保存在SQL数据库或.csv等),并且将命令发送到所述设备(经由设置某些标签,然后将PLC执行指令).
西门子S7-1200和S7-1500设备托管一个Web服务器,允许用户通过它创建网站和设置/读取数据.我已经成功地工作了.我打算绕过网站并直接从设备中提取数据.而不是不断从网站上提取数据.
我已经看过以下内容了:
以及很多西门子的教程和手册.
有关如何在C#中建立此连接的任何想法将不胜感激.
我终于有了工作。请首先阅读此Siemens链接中的PDF 。不幸的是,我无法在堆栈溢出上附加PDF。然后在此Microsoft链接上实现C#代码。根据PDF(未明确说明),PLC建立连接并因此充当客户端。PC打开一个端口,因此充当服务器。
设置PLC时,请参考所附图像。这将帮助您分别为TX和RX配置必要的DB。将TSEND和TRCV块用于TCP连接(如PDF所示)。确保所选的TCP端口在2000到5000之间。Siemens不支持更高的端口。我使用端口4005。
对发送器进行配置,使其在按下按钮时耦合到REQ位,或者将其设置为高时钟。请在实际块上按F1键,然后了解为什么用这种方式设置这些位。数据库设置如下:
不要通过路由器连接到PLC!您将需要设置路由器以进行“端口转发”。有关更多信息,请参考链接一和链接二。
提示1:确保C#应用程序中的文件结尾定界符(EOF)与PLC代码中的文件结尾定界符匹配。或使用C#中的字符串处理来考虑EOF的变化。当前的EOF在C#代码和TX_DB中显而易见。
提示2:切记始终清除西门子寄存器中的TX和RX。下图显示了如何进行TX。基本上,您使用“字符串移动”。
这不是一个完美的解决方案。但它确实不需要OPC服务器,也不需要通过FTP服务器,JSON结构等从网页提取数据的方式工作。