小编its*_*des的帖子

通过C#应用程序访问Siemens S7-1200

我正在尝试访问西门子S7-1200数据库,通过我将在Windows上运行的C#可执行文件设置和读取标签.目的是建立一个可以通过Wi-Fi /以太网与PLC建立连接的桌面应用程序.然后,应用程序将允许用户读出装置的数据(并保存在SQL数据库或.csv等),并且将命令发送到所述设备(经由设置某些标签,然后将PLC执行指令).

西门子S7-1200和S7-1500设备托管一个Web服务器,允许用户通过它创建网站和设置/读取数据.我已经成功地工作了.我打算绕过网站并直接从设备中提取数据.而不是不断从网站上提取数据.

我已经看过以下内容了:

以及很多西门子的教程和手册.

有关如何在C#中建立此连接的任何想法将不胜感激.

c# web-services plc s7-1200 siemens

8
推荐指数
1
解决办法
2604
查看次数

Neo4j 列表匹配

因此,在 Neo4j 中,如果您有各种节点,并且它们具有值为 1 的属性,如下所示:

n.stringProp = "something"
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用 MATCH 查询来获取符合查询列表中任何属性的各种节点,例如

MATCH (n) 
WHERE n.stringProp IN ["something", "somethingElse", "etc"]
RETURN n
Run Code Online (Sandbox Code Playgroud)

但是,如果您的节点具有列表属性,如下所示:

n.stringListProp = ["red", "purple", "green"]
Run Code Online (Sandbox Code Playgroud)

如果您想要获取在其列表属性中具有查询列表中的任意 1 个或多个标签的节点,那么您不能简单地执行如下查询:

MATCH (n)
WHERE n.stringListProp IN ["red"]
RETURN n
Run Code Online (Sandbox Code Playgroud)

而且您也不能使用 CONTAINS,因为那是针对子字符串的。所以你不能这样做:

MATCH (n)
WHERE n.stringListProp CONTAINS "red"
RETURN n
Run Code Online (Sandbox Code Playgroud)

并且您不能使用 FOREACH 循环它们,因为 FOREACH 仅适用于 CREATE、MERGE 或 DELETE 操作。所以我认为你必须对这种类型的 MATCH 查询使用 UNWIND 但我真的不确定如何构造这个查询。

如果有人知道该怎么做,可以帮我吗?

neo4j cypher

1
推荐指数
1
解决办法
8310
查看次数

标签 统计

c# ×1

cypher ×1

neo4j ×1

plc ×1

s7-1200 ×1

siemens ×1

web-services ×1