首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取PLC S7-300串行十六进制数据

如何获取PLC S7-300串行十六进制数据
EN

Stack Overflow用户
提问于 2013-02-12 17:00:57
回答 2查看 1.8K关注 0票数 2

我们有西门子PLC S7-300,带以太网通讯端口。哪种类型的java或其它语言编码可用于获得plc的帧数据?该PLC仅与step-7软件通信。

这种框架结构的数据也可以存储在一些文本文件的xml中,这样我们就可以连续地将其发送到internet上。

请帮帮我

EN

回答 2

Stack Overflow用户

发布于 2013-02-12 17:44:26

有第三方的库允许这样做。在我们公司,我们使用Accon AGLink。它是一个本地库,但也提供了一个.NET包装器。这个库有点快。你也可以尝试this one (indi.an PLCCom),它是托管的,不是很快,但它有一个免费的版本。

或者,您可以尝试设置OPC服务器,并使用OPC客户端读取PLC数据,但它们有点昂贵。

票数 1
EN

Stack Overflow用户

发布于 2018-01-26 01:08:07

看看,它是用C语言编写的,但有许多可用的包装器和端口,包括Python、Node.js、.NET、C#和Arduino,还有一个用Java语言编写的名为Moka7的a。

来自官方文档:

Snap7是一款开源的32/64位多平台以太网通信套件,用于与西门子S7 PLC进行本机接口。新的S7200 1200/1500、旧的CPU、小徽标0BA7/0BA8和SINAMICS驱动器也部分受支持。

我假设您的设置是由一个带有CP343通信模块的S7-300CPU组成的。要从中央处理器读取数据,系统必须运行S7服务器(可通过NetProSIMATIC管理器中进行配置,如Siemens commissioning manual中所述)。远程计算机应使用Snap7客户端库。

该库包括读取不同存储区的函数,例如进程输入(I)、进程输出(Q)、定时器(M)、定时器(T)和计数器(C),以及通用数据块(DB)。如果服务器已启用,并且配置不受限制(例如,仅限于某个IP地址),则默认情况下,客户端应至少可以访问I、Q和M,以及一些系统属性(如CPU型号和固件版本)。

对于使用Java语言的情况,可以查看Moka7文档,它可以在相同的download package中找到。有几个代码示例可以开始使用。

如果成功,ReadArea函数将返回指定字节的十六进制数据(即开始读取的内存位置和字节数)。值得一提的是,记住,大多数西门子PLC都是大端,所以如果您正在读取保存不同类型数据的存储区,则可能需要进行转换。

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

https://stackoverflow.com/questions/14828857

复制
相关文章

相似问题

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