问题标签 [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.
android - AsyncTask 代码添加到 Android 中的服务
我是 Android 的初学者,我正在创建 android 应用程序,与 Siemens PLC 的通信工作正常,但如果我单击按钮仅显示 android 中显示的数据,我想在服务中运行此代码我不知道如何添加代码(下面)在服务中
上面的代码工作正常,但是这个代码添加到服务我创建了一个服务
我添加了带有服务的代码,但显示连接问题
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
什么?而且,如果是这样,我怎样才能将它转换为一个字节?
谢谢。
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
我正在使用以下代码:
读取值函数:
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。重建解决方案后,效果很好!感谢
我已经编辑了上面的配置代码以反映正确的解决方案。
c# - 将 PLC Siemens S7-1500 连接到 SQL Server 数据库
连接指南在这里。我跟踪指南并做很多事情。PLC和SQL服务器连接正常,我已经成功登录SQL。
我可以insert
到表update
,并执行store procedures
。
但是当我运行select
查询时,我不知道如何检索数据和读取值。
我使用 TIA PORTAL v16。
PLC:S7 1200 西门子
我有一个简单的表格,我想简单地读取一个整数,首先是一行!然后扩展我的工作。
这是我的表结构:
这是我的select
查询:
预期结果:
更新
我回答了我自己的问题,请注意,西门子最近(2020 年 11 月 20 日)发布了一篇关于将 S7-* 系列直接连接到 Microsoft SQL Server 数据库的文档。因此,verfied anwser 是将 PLC 连接到 SQL Server 的经典且正常的方式,下一个答案是最新的本机解决方案。玩得开心
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(到底是什么?)。到目前为止,我用谷歌搜索了很多,但我找不到这个奇怪的事情的充分解释。有谁知道是什么原因?
谢谢大家:-)
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 似乎没有发送任何响应。难道我做错了什么?我很困惑为什么这现在不起作用。
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”数据块中带来更多数据。附上数据块的图片。
请寻求帮助。
干杯
python - 如何将 OPC UA 服务器连接到 PLC?
我有一个 PLC Siemens s7-1500,它不包括 OPC-UA 服务器的许可证,因此我正在尝试寻找替代品,因为我需要将此 PLC 信息链接到 OPC-UA 服务器,然后再咨询由另一个 OPC-UA 客户端。
到目前为止,我已经探索了 python 库 python-opcua,但我是 IoT 和 OPC-UA 的新手,我希望获得一些指导以继续此实施。
最好的问候亚历杭德罗