首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过C#应用程序访问西门子S7-1200

通过C#应用程序访问西门子S7-1200
EN

Stack Overflow用户
提问于 2016-05-09 09:31:20
回答 1查看 4.1K关注 0票数 9

我试图访问西门子S7-1200数据库,通过我将在Windows上运行的C#可执行文件来设置和读取标记。其意图是拥有一个桌面应用程序,它可以通过Wi/以太网与PLC建立连接。然后,该应用程序将允许用户从设备上读取数据(并保存在SQL数据库或.csv等中)。并向设备发送命令(通过设置某些标记,然后由PLC执行指令)。

西门子S7-1200和S7-1500设备拥有一个set服务器,允许用户创建网站并通过该服务器设置/读取数据。我已经成功地完成了任务。我打算绕过网站,直接从设备中提取数据。而不是不断地从网站中提取数据。

我已经看过以下内容:

还有很多西门子的教程和手册。

任何关于如何在C#中建立这个连接的想法都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-30 08:34:04

我终于让它开始工作了。请先阅读西门子这条链路中的PDF。不幸的是,我不能在堆栈溢出上附加PDF。然后在C#上实现此Microsoft链接代码。根据PDF (没有明确说明),PLC建立了连接,因此充当客户端。PC打开一个端口,因此充当服务器。

当设置PLC时,请参考附件中的图像。这将帮助您分别为TX和RX配置必要的DB。对TCP连接使用TSEND和TRCV块(如PDF中所示)。确保所选TCP端口在2000年至5000年间存在。西门子不支持高于这一水平。我用了4005端口。

配置发射机,以便当您按下按钮时,将其耦合到REQ位,或将其设置在时钟高度上。请按下实际块上的F1,并阅读为什么这些位元是这样设置的。数据库设置如下:

RX DB设置如下:

不通过路由器连接到可编程控制器!您将需要设置路由器来进行“端口转发”。有关这方面的更多信息,请参考链接一链接二

提示1:确保C#应用程序中的文件结束分隔符(EOF)与PLC代码中的分隔符匹配。或者在C#中使用字符串处理来解释EOF的变化。当前的EOF在C#代码和TX_DB中很明显。

提示2:记住永远清除西门子的TX和RX寄存器。下面的图片显示了如何为TX做这件事。基本上你用“字符串移动”。

--这不是一个完美或完整的解决方案,但的工作并不需要OPC服务器,也不需要通过FTP服务器、JSON结构等从网页中提取数据。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37112186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档