Ответы в темах
-
АвторСообщения
-
OlegУчастникВ контекстном меню файла «KpPing.dll» выбрал опцию разблокировать файл скачанный из интернета (не дословно). Все работает. Спасибо.
OlegУчастникНашел ошибку в логе:
2017-06-15 14:16:55 Ошибка при получении типа интерфейса КП из библиотеки KpPing.dll:
An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
OlegУчастникValeryPro, в том то и дело, что уже пробовал. Даже добавил параллельно вашей нашу dll для связи с лазерным принтером — наша библиотека появилась в Коммуникаторе, ваша — нет.
Файл не менялся?
OlegУчастникValeryPro, не работает dll. Дальше этого не идет:
«2017-06-15 14:16:45 Инициализация линии связи 10 «KpPing.dll»»
Также dll почему-то отсутствует в списке раздела «Библиотеки КП» SCADA-Коммуникатора. Хотя библиотека лежит в папке KP и в Администраторе в Справочнике Типы КП указано имя файла библиотеки.
OlegУчастникХорошо, обязательно напишу.
OlegУчастникМихаил,
Все работает. Несколько дней из плк считывались три переменные integer и три string (одна длиной 256 байт, в базу пишется 8). Все нормально.
Вот лог коммуникатора: https://drive.google.com/file/d/0B6MHBdrMIRXFVXBTcDhUMmlabkU/view?usp=sharing
Что еще нужно проверить?
OlegУчастникМихаил, спасибо! Сегодня начну тестирование.
OlegУчастникСпасибо за помощь. Формула работает.
Я немного изменил под свои нужды: вызывается функция GetDesign(328,329,330,331,332), в качестве аргументов номера каналов с кодом номера заказа.
double GetDesign(int A, int B, int C, int D, int E) { double A_val = Val(A); double B_val = Val(B); double C_val = Val(C); double D_val = Val(D); double E_val = Val(E); byte A_byte = System.Convert.ToByte(A_val); byte B_byte = System.Convert.ToByte(B_val); byte C_byte = System.Convert.ToByte(C_val); byte D_byte = System.Convert.ToByte(D_val); byte E_byte = System.Convert.ToByte(E_val); byte[] buf = new byte[8]; buf[0] = A_byte; buf[1] = B_byte; buf[2] = C_byte; buf[3] = D_byte; buf[4] = E_byte; return BitConverter.ToDouble(buf, 0); }Готов поучавствовать в тестировании.
-
АвторСообщения