我又来了一个新问题;这次是关于PLC。
我首先说我是 PLC 的新手,直到几个月前我才见过其中一个。我被要求编写一个程序,从 Delphi 读取来自 PLC Siemens S7-300 的一些数据,以便将它们归档到 SQL Server 数据库中。我正在使用“libnodave”库。
该程序非常简单。我必须验证一下,当它打开时,我必须从 PLC 读取数据并关闭该位。使用我所说的库,我可以毫无问题地读写,但是我必须读取的数据存储在一组字节(大约 60 个字节)中,所以我必须读取一些字节,跳过其他一些字节并读取其他字节。此外,我必须测试的位在这组字节的末尾。
所以我读取了整个字节组,将数据放入一组变量中,然后测试该位,如果它打开,我将数据存储到数据库中。为了跳过我不必阅读的字节,我使用这种语句:
for i := 1 to 14 do
daveGetU8(dc);
for i := 1 to 6 do
daveGetU16(dc);
我的问题是:
- 有更好的方法来读取数据,跳过我不必读取的数据吗?
- 读取整个字节组并在测试位后方便还是将两个读取分开更好?
我这样说是因为我在互联网上发现读取操作需要一些时间,所以最好尽可能减少读取次数。
爱神