值得注意的更新!
西门子最近(11/20/2020)发布了一份关于将S7-*系列连接到Microsoft SQL Server数据库的文档,directly与NO中间件如OPC Servers
or S7netplus
包裹。这意味着您可以运行 SQL 查询,例如select
and insert
通过 PLC 中的内部功能。
这是一个更快且原生的解决方案。
First, via TiaPortal I made a string array in a Program block.
您应该设置如下图所示的连接字符串,其中 Microsoft Sql Server 的 IP 地址是172.16.62.1
:
Then I made a built-in PLC function by following instruction in these published by Simense.
I have a bunch of queries in my predefined string array, I choose one of them by its index as an input parameter to the PLC function.
then I downloaded changes to PLC. as a result I have hello world
in MSSQL Server.
By far I ran a SQL Server Query by PLC itself!
Let's run another query and the hardest one: select
.
I said the hardest because select
has a bunch of records with various data type: like varchar
, bool
, DateTime
.
“select”指令 使用“select”指令,您可以从数据库表中读取数据并在控制器中对它们执行其他操作。下面,我们使用一个示例来展示该指令的工作原理以及您需要对查询进行哪些修改。该示例使用以下查询:
Select * from Mytable
查询到的数据存储在数据类型结构“typeUseCaseSpecificData”中的“SqlReceive”数据块中。您必须为每个查询单独修改这些数据类型。您可以按如下方式执行此操作: 1. 启动 Wireshark 记录以查找元数据的数据包长度。 2. 运行查询“从 PLCDATA_2 选择金额,其中 Fruit = $'Apple$'”。 3. 停止Wireshark 记录并使用过滤器“TDS”从SQL 服务器搜索响应帧。 4. 选择框架并单击“Token – ColumnMetaData”行。
好的,现在我想选择select
在 sqlqueries 数组中查询:
SELECT _barcode FROM mytable where id = 4
我再次激活/停用输入,然后得到结果,在这里我通过 id 得到“Peyman Majidi”字符串。
Output:
“佩曼·马吉迪”
我可以向你展示它是如何工作的Wireshark
通过聆听tds
协议。
表格数据流协议 (TDS) 使您能够与 Microsoft SQL 服务器建立直接连接。使用TDS,您可以登录SQL Server数据库并传输SQL指令。这样就可以从数据库中读取数据,或者将数据发送到数据库进行存储。