Здравствуйте!
Пытаюсь достучаться до ТРМ-101 из VB6.
Код модуля:
Стучусь через окно immediate:Код:Option Explicit ' Определения для последовательных портов COMxx=(xx-1) Enum ePorts COM_1 = 0 COM_2 = 1 COM_3 = 2 COM_4 = 3 COM_5 = 4 COM_6 = 5 COM_7 = 6 COM_8 = 7 End Enum ' Определения скорости Enum eRates ' Добавлено для приборов на АС2 er300 = -3 er600 = -2 er1200 = -1 ' Добавлено для приборов на АС2 er2400 = 0 er4800 = 1 er9600 = 2 er14400 = 3 er19200 = 4 er28800 = 5 er38800 = 6 er57600 = 7 er115200 = 8 End Enum Enum eParity parity_NONE = 0 parity_EVEN = 1 parity_ODD = 2 End Enum Enum eDataBits databits_7 = 0 databits_8 = 1 End Enum Enum eStopBits stopbit_1 = 0 stopbit_2 = 2 End Enum Enum eConverterType RS485CONV_MANUAL = 0 RS485CONV_AUTO = 1 RS485CONV_MANUAL_DTR = 2 End Enum ' Выбор модели Public Declare Function SetApiMode Lib "owen_io" (ByVal n As Long) As Long Public Declare Function OpenPort Lib "owen_io" _ (ByVal n As ePorts, _ ByVal speed As eRates, _ ByVal parity As eParity, _ ByVal databits As eDataBits, _ ByVal bitstop As eStopBits, _ ByVal vid As eConverterType) As Long ... '×òåíèå 3-õ áàéòîâîãî ïëàâàþùåãî Public Declare Function ReadFloat24 Lib "owen_io" _ (ByVal adr As Long, _ ByVal adr_type As Long, _ ByVal cmd As String, _ res As Single, _ ByVal Index As Integer) _ As Long ... Public Function getFloat24(ByVal adr As Long, _ ByVal adr_type As Long, _ ByVal cmd As String, _ ByVal Index As Integer) As Single Dim val As Single Dim ret As Long checkReturn ReadFloat24(adr, adr_type, cmd, val, Index) getFloat24 = val End Function Function checkReturn(ret As Long) If ret < 0 Then Dim errstr As String errstr = Space$(300) LastErrToStr errstr errstr = Left$(errstr, InStr(errstr, Chr(0)) - 1) Err.Raise 12345, , "Error: " + errstr End If End Function
Выдаёт ошибку "Размер поля данных не соответствует ожидаемому". Пробовал менять индекс, результат аналогичен. Пробовал строки "PV ", "Pv ", "PV", "Pv", "AL-d". Результат аналогичен. Пробовал RS485CONV_MANUAL, аналогично. Если меняю адрес, ошибка меняется на что-то типа "нет ответа". Если меняю строку на что-то невнятное, говорит что-то вроде "параметр не найден".Код:checkreturn openport(COM_3,er9600,parity_NONE,databits_8,stopbit_1,RS485CONV_AUTO) ? getFloat24(16,0,"Pv",-1)
С конфигуратором связывается.
ТРМ-101 с прошивкой v03.0023. Файл конфигурации попробую прикрепить... http://www.owen.ru/forum/attachment....1&d=1490979053
Подключён через конвертер USB-RS232 мастеркит и АС-3М
Помогите пожалуйста!


Ответить с цитированием