Как при помощи Visual Basic 5.0 менять уставку в в трм 151 процессе работы если это вооще возможно. Люди поделитесь опытом и если возможно примерами.
Как при помощи Visual Basic 5.0 менять уставку в в трм 151 процессе работы если это вооще возможно. Люди поделитесь опытом и если возможно примерами.
Общий алгоритм таков... качаете руководлство по прибору отсюда http://www.owen.ru/support/45592687, находите в неи параметр, который хотите менять, берете библиотеку для связи с приборами ОВЕН отсюда http://www.owen.ru/device/64305906 и пишите свой софт
Спасибо за внимание к моему вопросу
Все что вы написали я уже проделал и в результате уставка становится в 0 а конкретное значение задать не получается.
рассказывайте, какое значение в какой параметр записываете, какой функцией, и какой результат возвращает функция. будет еще лучше, если вы пришлете мне кусок рабочего кода.
а вы правда Vb5 используете, а не Vb6?
1.как просили кусок кода
адрес у прибора 24
Case 24
' res2 = WriteStoredDotS(24, 0, "SP.lu", 25, -1)
2. Я действительно использую Visual Basic 5.0
Последний раз редактировалось Mihail; 15.10.2008 в 16:31.
а что функция возвращает в res2?
Ничего не возвращает и уставка становится равной 0
Если вы знаете как это делать то просто пришлите пример я кода. Я со своей стороны поподробнее опешу результат испытания.
так не бывает. функция возвращает код ошибки. полагаю, что у вас это -104 (размер поля данных не соответствует ожидаемому).
параметр SP.Lu задает уставку для программы\шага\ПС и имеет сквозную индексацию от 0 до 239. то есть вызывать функцию надо так:
res2 = WriteStoredDotS(24, 0, "SP.lu", 25, 0)
это для первого ПС на первом шаге первой программы.
и, наконец, из-за некоторого непонимания между прибором и owen_io.dll далеко не все значения можно записать этой функцией. поэтому предлагаю вам использовать такую замену:
Код:'Универсальная функция для обмена с устройствами по протоколу OWEN Private Declare Function OwenIO Lib "owen_io" _ (ByVal adr As Long, _ ByVal adr_type As Long, _ ByVal is_read As Long, _ ByVal cmd As String, _ ByVal params As String, _ param_sz As Long) _ As Long Private Function WriteStoredDot(ByVal adr As Long, ByVal adr_type As Long, _ ByVal cmd As String, ByVal Value As Single, ByVal index As Integer) As Long Dim intval As Integer Dim sign As Integer Dim dot As Integer Dim sz As Long Dim buf As String If Abs(Value) * 100 <= 65536 Then intval = CInt(Value * 100) dot = 32 ElseIf Abs(Value) * 10 <= 65536 Then intval = CInt(Value * 10) dot = 16 Else intval = CInt(Value) dot = 0 End If If intval < 0 Then sign = 128 intval = -intval Else sign = 0 End If If (intval < 16) Then buf = Chr(sign + dot + intval) sz = 1 ElseIf intval < 256 Then buf = Chr(sign + dot) buf = buf + Chr(intval) sz = 2 Else If intval \ 256 < 16 Then buf = Chr(sign + dot + intval \ 256) buf = buf + Chr(intval And &HFF) sz = 2 Else buf = Chr(sign + dot) buf = buf + Chr(intval \ 256) buf = buf + Chr(intval And &HFF) sz = 3 End If End If If index <> -1 Then buf = buf + Chr(index \ 256) buf = buf + Chr(index And &HFF) sz = sz + 2 End If buf = buf + Space(15) WriteStoredDot = OwenIO(adr, adr_type, 0, cmd, buf, sz) End Function
Последний раз редактировалось Дмитрий Егоренков; 16.10.2008 в 13:49.
Спасибо большое завтра протестирую и сообщу о результатах.
Где найти подробное описание команды WriteStoreDot = OwenIO(adr, adr_type, 0, cmd, buf, sz)
Дайте адрес или само описание а то не очень в программирование но мне очень хочется научится.
Последний раз редактировалось Mihail; 16.10.2008 в 16:38.
все функции owen_io.dll есть в описании библиотеки. описание входит в поставку или может быть отдельно скачано здесь - http://www.owen.ru/device/64305906.
OwenIO() - универсальная функция для связи по протоколу овен. возвращаемое ей значение (код ошибки) присваивается в этой строке специальной переменной VB, название которой совпадает с именем функции. это значение станет кодом возврата функции WriteStoreDot().