问题标签 [siemens]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
69 浏览

android - AsyncTask 代码添加到 Android 中的服务

我是 Android 的初学者,我正在创建 android 应用程序,与 Siemens PLC 的通信工作正常,但如果我单击按钮仅显示 android 中显示的数据,我想在服务中运行此代码我不知道如何添加代码(下面)在服务中

上面的代码工作正常,但是这个代码添加到服务我创建了一个服务

我添加了带有服务的代码,但显示连接问题

0 投票
0 回答
179 浏览

vb.net - 从 Siemens PLC S7-200(COM 协议)读取 M0 字节

我正在使用一个Siemens PLC SIMATIC S7-200和一个VB.NET与之通信的程序(并libnodave为此使用库)。我对这一切都很熟悉,但我无法弄清楚一些事情,我希望你们中的一些人能帮助我。让我试着解释一下:

建立所有通讯后

我尝试M0使用以下内容读取字节:

这是我收到错误的地方(在某些情况下)。我将问题定位PCNCTR.getS8-81. 我怎样才能变成-81一个字节?我正在使用M02FNC001函数来做到这一点,但这是我不太了解的部分。

那么,为了澄清一些事情,-81输出的正常值是PCNCTR.getS8什么?而且,如果是这样,我怎样才能将它转换为一个字节?

谢谢。

0 投票
1 回答
650 浏览

opc-ua - 问题从 opc ua siemens 服务器 C# 读取 DT(日期和时间)

我正在尝试使用统一自动化的 opc ua DLL 从 Opc ua Server (Siemens) 读取日期和时间 (#DT)。但我得到错误的价值:

西门子 S7 1500 opc ua 客户端 DT#2008-10-25-08:12:34.567 --> 17.09.1142 05:08:27

我正在使用以下代码:

读取值函数:

0 投票
0 回答
148 浏览

c# - 一个解决方案中的两个项目使用相同 dll 的两个不同版本

我正在尝试实施以下较早问题的解决方案,并且我不想劫持该问题,因此我发布了一个新问题。我希望这没问题。 相同的 DLL 两个不同的版本

我有一个如下的项目结构

  • 客户
    • Form1.cs
  • TiaOpennessV15_1
    • TiaOpenness.cs
    • V151
      • Siemens.Engineering.dll (15.1.0.0)
  • TiaOpennessV16
    • TiaOpenness.cs
    • V16
      • Siemens.Engineering.dll (16.0.0.0)

这两个 TiaOpenness 项目都使用名为 Siemens.Engineering 的 dll 文件,尽管它们分别使用版本 15.1.0.0 和 16.0.0.0。我已将这些 dll 文件分别放在文件夹 V151 和 V16 下的单独项目中。我在每个 TiaOpenness 项目中引用了不同的 dll 文件,并将 "Copy Local" 设置为False

在我的客户端项目(Windows 窗体)中,我有以下 App.config 代码。

App.config [已解决]

当我启动客户端时,我可以通过运行下面的代码来验证客户端在这两种情况下都使用 16.0.0.0 版本的 dll。

如果我从上面删除 App.config 代码,我会收到以下错误。

System.IO.FileNotFoundException:'无法加载文件或程序集'Siemens.Engineering,Version=16.0.0.0,Culture=neutral,PublicKeyToken=d29ec89bac048f84'或其依赖项之一。该系统找不到指定的文件。'

请注意,同一个对话框有一个内部异常,指出版本 15.1.0.0 而不是版本 16.0.0.0,但具有相同的 PublicKeyToken。

我检查了两个 dll 文件是否分别移动到 bin/debug 文件夹中的文件夹 V151 和 V16 中。我不知道还能做什么......非常感谢任何帮助!

编辑 1 @KlausGütter:我希望能够使用我的客户端访问两个 TiaOpenness 项目(类库),每个项目都应该使用自己的 dll 版本。不同的版本返回不同的实例 ID,我应该在上面的 FindInstancesButton_Click 函数的实例列表中有一组两个不同的整数。

现在发生的事情是两个 TiaOpenness 项目都使用相同的 dll,即使我正在尝试使用不同的 dll。

编辑 2 @KlausGütter:谢谢克劳斯!事实证明,编译后自动将 bindingRedirect 插入到配置文件中。我没有看到你之前链接的帖子,但果然我必须将我自己的 bindingRedirects 插入到配置文件中并将其设置为 false。重建解决方案后,效果很好!感谢

我已经编辑了上面的配置代码以反映正确的解决方案。

0 投票
2 回答
8823 浏览

c# - 将 PLC Siemens S7-1500 连接到 SQL Server 数据库

连接指南在这里。我跟踪指南并做很多事情。PLC和SQL服务器连接正常,我已经成功登录SQL。
我可以insert到表update,并执行store procedures

但是当我运行select查询时,我不知道如何检索数据和读取值。

蒂亚门户

我使用 TIA PORTAL v16。

PLC:S7 1200 西门子

我有一个简单的表格,我想简单地读取一个整数,首先是一行!然后扩展我的工作。

这是我的表结构:

这是我的select查询:

预期结果:

SQL 截图

https://support.industry.siemens.com/tf/ww/en/posts/connecting-an-plc-siemens-s7-1500-to-an-sql-server-database/239392/?page=0&pageSize=10 #post939400

更新

我回答了我自己的问题,请注意,西门子最近(2020 年 11 月 20 日)发布了一篇关于将 S7-* 系列直接连接到 Microsoft SQL Server 数据库的文档。因此,verfied anwser 是将 PLC 连接到 SQL Server 的经典且正常的方式,下一个答案是最新的本机解决方案。玩得开心

0 投票
0 回答
71 浏览

git - 从 Fossil 转换到 Git 到 Git LFS 时增加存储空间

我们目前正在 Fossil repos 中跟踪 Siemens PLC 程序(TIA 项目)。现在我们必须将所有存储库移动到 Bitbucket,因此我开始测试从 Fossil 到 Git 的转换,因为 Bitbucket 仅支持 Git。

关于我们的存储库的一个特别之处是,我们在其中跟踪整个项目,包括 2 个二进制项目文件,这样我们就可以从在 TIA(西门子 IDE)中打开所需的存储库中恢复整个项目。这 2 个文件不是很大(1 个在 5-10MB 之间,一个在 1MB 左右),但是随着几年来项目的发展,我们有很多提交。

对于我们的一个项目,使用 Fossil export --git 的转换已成功完成。

但是……她来了我的观点 1:原始 Fossil 存储库的大小约为 600MB。生成的 Git 存储库现在的大小约为 1.5GB,这意味着几乎是 Fossil 存储库的 3 倍。有人知道为什么吗?我最好的猜测是,Fossil 似乎只跟踪差异工件——即使是二进制文件,而 Git 总是跟踪整个文件。还是 Fossil 只是压缩得更好?

Bitbucket 仅允许 repo 大小 < 2GB。因此,当将这个项目原样迁移到 Bitbucket 时,我们很快就会遇到问题。因此,我想通过 Git LFS 测试跟踪 2 个二进制文件。我使用 BFG 按照此处提供的指南转换仓库的历史记录: https ://docs.gitlab.com/ee/topics/git/lfs/migrate_to_git_lfs.html ,但我将仓库镜像到本地的另一个地方为我还没有在任何服务器上。

这让我想到了第 2 点:在运行 BFG 和 git reflog/gc 之后,我最终得到了一个较小的 repo,但 LFS 对象文件夹现在约为 3.7GB(到底是什么?)。到目前为止,我用谷歌搜索了很多,但我找不到这个奇怪的事情的充分解释。有谁知道是什么原因?

谢谢大家:-)

0 投票
1 回答
631 浏览

modbus - PyModbus 无法读取保持寄存器

我正在尝试使用 PyModbus 2.3.0 从 Siemens S7-1200 PLC 上的一些保持寄存器中读取值。我已经设置了一些梯形逻辑来在 PLC 上进行测试,其中一些寄存器保存着随机浮点测试值。我正在尝试通过 Raspberry Pi 3 上的标准 Raspbian 安装来完成这一切。连接是通过以太网进行的,并且我已经确认 PyModbus 可以连接到 PLC(我已经对 PLC 进行了 ping 操作,并且 PyModbus 状态请求返回是的,你很快就会看到)。有罪的代码是这样的:

结果是这样的:

我无法显示我现在使用的梯形逻辑,但是 TIA 为具有测试值的寄存器提供的地址是“%MD50”,我相信这意味着我需要像上面那样做并期待具有 64 位数据的寄存器 50(保持寄存器)。但是,PLC 似乎没有发送任何响应。难道我做错了什么?我很困惑为什么这现在不起作用。

0 投票
1 回答
227 浏览

java - Python TCP/IP PLC 客户端演示到 Java 语言

我有一个用 python 制作的 Siemens s1200 plc TCP/IP 客户端演示。我可以从 Youtube 找到它:https ://www.youtube.com/watch?v=5KLLeQeB2EY

我的问题是,如何将此代码转换为 java 程序。我目前正在开发一个项目,将数据从 plc 读取到 java 客户端(然后从 java 到 plc),我目前有点卡在这个项目上。

这个 python 演示在运行时在控制台上写入“testi1”字符串,我正在寻找从“output1”数据块中带来更多数据。附上数据块的图片。

请寻求帮助。

干杯

数据块“输出 1”

0 投票
4 回答
2245 浏览

python - 如何将 OPC UA 服务器连接到 PLC?

我有一个 PLC Siemens s7-1500,它不包括 OPC-UA 服务器的许可证,因此我正在尝试寻找替代品,因为我需要将此 PLC 信息链接到 OPC-UA 服务器,然后再咨询由另一个 OPC-UA 客户端。

到目前为止,我已经探索了 python 库 python-opcua,但我是 IoT 和 OPC-UA 的新手,我希望获得一些指导以继续此实施。

最好的问候亚历杭德罗

0 投票
1 回答
264 浏览

pyqt - 如何将 PLC 的动态视图(如在 IHM Siemens 中)插入 Qt(PyQt + Qt Designer)

我正在设计一个 GUI,它将处理从 PLC S7-1200 或 S7-1500 接收到的数据。我拥有 STEP 7 v16 许可证并为我的系统设计了 IHM 的视图(基本上是泵、水箱和传感器)。我用 Qt Designer 和 PyQt 做到了这一点

我想在我的系统的这个界面示意图(交互式或非交互式)上添加:类似这样的东西,我们可以通过键入 WinCC OA 在谷歌上找到

或者我在 Tia Portal 上制作的类似的东西

谢谢