c# - 如何在 siemens PLC Device 中设置 I/O 值?
问题描述
我正在为 .net 框架(C#)中的本地网络创建一个 Web API。在该用户可以从 excel 导入/导出 IO 标签或将它们设置为静态字符串数组。我添加了(Siemens.Engineering.Hmi.dll),但仍然显示未找到编译时错误。
我们还连接到 TIAPortal,它运行良好,唯一的障碍是 I/O 标签导入/导出或设置静态值和 HMI 软件。
项目:Web API(.Net Framework 4.6.1)
蒂亚门户:v16.0
许可证类型:试用
如果有人有想法或任何建议,请回复我。这将是高度赞赏。
解决方案
您遇到的问题是(很可能)您没有copy local
将引用的 Siemens.Engineering.Hmi.dll 的属性设置为 false。因此,无法找到引用的 Siemens.Engineering.Hmi.dll 的依赖关系。备注:除了Siemens.Engineering.Hmi.dll之外,添加 Siemens.Engineering.dll 作为参考
拥有一个非本地程序集则需要AssemblyResolving
. 最简单的方法是使用 App.config 文件。
请参阅 Siemens 关于此主题的此页面: support.industry.siemens.com
我看到的第二个问题是标签的访问。您肯定知道,有 HMI 标签和 PLC 标签。可以通过各自的DeviceItems
. 这些DeviceItems
暴露不同Services
。您可以Services
通过该<YourEngineeringObject>.GetService<T>()
方法访问。在这种情况下,您将需要该SoftwareContainer
服务。
要熟悉 TIA Openness 的数据模型,请查看TIA Openness Explorer
此外,为了加深您对使用 TIA Openness 的理解,请参阅SIMATIC TIA Portal Openness:用于工程工作流自动化的 API
推荐阅读
- javascript - React:从列表项的弹出菜单中编辑和删除
- css - 如何在 iOS Safari 中将复选标记的颜色更改为白色?
- javascript - 如何使用 Dexie/IndexDB 从 table.get 获取有效结果
- android - android 应用程序由于低内存杀手而崩溃,但探查器显示其他情况
- python-3.x - python - 如何在Beautiful Soup中从同一类和属性中抓取多个信息,而无需在Python中对find_all函数进行硬编码索引?
- math - 如何在知道 0 点值的情况下缩放两个范围?
- ios - 是否可以更改从 NSURLSessionDelegate:didReceiveChallenge() 生成的重试请求的 HTTP 标头?
- c++ - 使用 Matlab Coder 将 Matlab 代码转换为 C++ - 单元问题
- c# - 在 Azure DevOps 上生成错误但不是本地错误
- mysql - MySQL远程连接需要超过3分钟才能显示结果