我们有西门子PLC S7-300,带以太网通讯端口。哪种类型的java或其它语言编码可用于获得plc的帧数据?该PLC仅与step-7软件通信。
这种框架结构的数据也可以存储在一些文本文件的xml中,这样我们就可以连续地将其发送到internet上。
请帮帮我
发布于 2013-02-12 17:44:26
有第三方的库允许这样做。在我们公司,我们使用Accon AGLink。它是一个本地库,但也提供了一个.NET包装器。这个库有点快。你也可以尝试this one (indi.an PLCCom),它是托管的,不是很快,但它有一个免费的版本。
或者,您可以尝试设置OPC服务器,并使用OPC客户端读取PLC数据,但它们有点昂贵。
发布于 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服务器(可通过NetPro在SIMATIC管理器中进行配置,如Siemens commissioning manual中所述)。远程计算机应使用Snap7客户端库。
该库包括读取不同存储区的函数,例如进程输入(I)、进程输出(Q)、定时器(M)、定时器(T)和计数器(C),以及通用数据块(DB)。如果服务器已启用,并且配置不受限制(例如,仅限于某个IP地址),则默认情况下,客户端应至少可以访问I、Q和M,以及一些系统属性(如CPU型号和固件版本)。
对于使用Java语言的情况,可以查看Moka7文档,它可以在相同的download package中找到。有几个代码示例可以开始使用。
如果成功,ReadArea函数将返回指定字节的十六进制数据(即开始读取的内存位置和字节数)。值得一提的是,记住,大多数西门子PLC都是大端,所以如果您正在读取保存不同类型数据的存储区,则可能需要进行转换。
https://stackoverflow.com/questions/14828857
复制相似问题