我正在尝试访问西门子S7-1200数据库,通过我将在Windows上运行的C#可执行文件设置和读取标签.目的是建立一个可以通过Wi-Fi /以太网与PLC建立连接的桌面应用程序.然后,应用程序将允许用户读出装置的数据(并保存在SQL数据库或.csv等),并且将命令发送到所述设备(经由设置某些标签,然后将PLC执行指令).
西门子S7-1200和S7-1500设备托管一个Web服务器,允许用户通过它创建网站和设置/读取数据.我已经成功地工作了.我打算绕过网站并直接从设备中提取数据.而不是不断从网站上提取数据.
我已经看过以下内容了:
以及很多西门子的教程和手册.
有关如何在C#中建立此连接的任何想法将不胜感激.
因此,在 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 但我真的不确定如何构造这个查询。
如果有人知道该怎么做,可以帮我吗?