Я снова здесь с новым вопросом; на этот раз о ПЛК.Чтение данных с PLC с библиотекой Delphi и libnodave
Начну с того, что я новичок в ПЛК, и я не видел ни одного из них до тех пор, пока пару месяцев назад. Прошу написать программу, которая считывает из Delphi некоторые данные из PLC Siemens S7-300, чтобы архивировать их в базе данных SQL Server. Я использую библиотеку libnodave.
Программа довольно проста. Я должен проверить немного, и когда он включен, я должен прочитать данные из ПЛК и установить бит. С библиотекой, которую я рассказал о том, что я могу читать и писать без проблем, но данные, которые я должен читать, хранятся в группе байтов (около 60 байт), поэтому я должен прочитать несколько байтов, пропустить некоторые другие и прочитать другие байты. Кроме того, бит, который я должен проверить, находится в конце этой группы байтов.
Итак, я прочитал всю группу байтов. Я поместил данные в группу переменных, а затем проверил бит и, если он включен, я храню данные в базе данных. Для того, чтобы пропустить байты я не должен читать я использую этот вид утверждений:
for i := 1 to 14 do
daveGetU8(dc);
for i := 1 to 6 do
daveGetU16(dc);
Мои вопросы таковы:
- Существует лучшим способ чтения данных пропуска у меня нет читать?
- Удобно ли читать всю группу байтов и после проверить бит или лучше сделать два чтения разделенными?
Я говорю об этом, потому что я нашел в Интернете, что для операций чтения требуется некоторое время, поэтому лучше сделать минимальные числа чтения возможными.
Эрос
Thanks LU RD. Я закончил ethernet, возможно, 1 Гбит/с и минус со скоростью 100 Мбит/с. – Eros
S7-300 не может обрабатывать 1 Гбит/с. S7-300 имеет порт Profinet (Industrial Ethernet), но это не его основная задача. Вы найдете в S7-1500 гораздо больше возможностей для более высокой нагрузки на связь. Скорость связи зависит от конфигурации ПЛК. Был ли инженер ПЛК зарезервировать достаточные ресурсы в резерве связи в PN-интерфейсе? Каково время цикла OB1 в ПЛК? Это сообщение сделано во время PI/PQ ПЛК или ациклическим. И т.д. и т. Д. – CJD