Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: СИ8 и delphi

  1. #1

    По умолчанию СИ8 и delphi

    вопрос такой: как получить данные в программе непользуясь здешней библиотекой так как она неставится. для работы с сом портом использую другую библиотеку.
    я так понимаю на си8 сначало надо послать одну из 3-х команд для приема данных?
    если это так, то можно ли просто в ком порт послать эту команду?

    или как считать данные с си8?

  2. #2

    По умолчанию

    как библиотеку установить?

  3. #3

    По умолчанию

    Скопируйте .dll в каталог windows/system32 или в рабочий каталог программы (где находится ваш exe файл)
    Часто задаваемые вопросы по кодесис
    1) Почему программа не работает - Следует выполнить "Онлайн ->Старт"
    2) Где скачать CoDeSys, таргеты, прошивки, библиотеки - http://www.owen.ru/catalog/codesys_v3/opisanie

  4. #4

    По умолчанию

    попрежнему неработает!
    пример на делфи тоже неработает

  5. #5

    По умолчанию

    разобрался!
    Вот функция чтения: function ReadSInt(adr,adr_typeWORD;command:PChar;var value:Integer;index:Integer): Integer;
    присваиваю ей следующие значения: imp:=ReadSInt(0,0,'c173',2,1);
    компилятор выдает ошибку.
    вопрос: что не так?

  6. #6

    По умолчанию

    с библиотекой вроде разобрался, программа компилируется нормально, но как только нажимаем кнопку открыть порт- программа выдает ошибку.
    чтоже всетаки не так?

  7. #7

    По умолчанию

    вот так происходит у меня чтение данных:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    imp:= ReadSI8BCD(0,0,'DCNT', value);
    end;

    кстати пример работы с библиотекой тоже неработает.
    после запуска программы она сразуже вылетает.

  8. #8

    По умолчанию

    0) На всякий случай, проверьте что у вас последняя версия библиотеки - как на сайте.
    1) тут на форуме было подробное обсуждение дельфи и рекомендация к использованию лицензионных продуктов типа MS C# Express. Если нет большой наработки программ на дельфи и опыта использования pascal, все таки, используйте C#. Дельфи какой версии используете? Проверялось на 6,7. Программа лицензионная или ворованная?
    2) Все функции являются указателями - при загрузке они инициируются путем загрузке соответствующих функций из dll. Проверьте значения указателя - он должен быть не null
    3) После получения ошибки - какое значение возвращают функции возврата ошибок из библиотеки?

  9. #9

    По умолчанию

    0) Библиотеку скачал сдесь на сайте, дата ее изменения 29.01.2010
    1) Ненашел подробного обсуждения, использую 7-ю версию, пиратка.
    2) Инициализирую вот так: function ReadSI8BCD(adr,adr_typeWORD;command:PChar; var value:Integer):Integer;
    external 'owen_io.dll';
    Как проверить значение этого указателя?

  10. #10

    По умолчанию

    unit Owen_CI8;

    interface

    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

    type
    TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    function OpenPort(n,speed, parity,bits,stop,converterWORD): Integer;
    external 'owen_io.dll';
    function ReadSI8BCD(adr,adr_typeWORD;command:PChar; var value:Integer):Integer;
    external 'owen_io.dll';

    var
    Form1: TForm1;
    imp, va: integer;
    implementation


    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    va:=0;
    if OpenPort(0,2,0,1,0,0)>0 then begin
    imp:= ReadSI8BCD(0,0,' DCNT ', va);
    if imp=0 then
    Edit1.Text:= IntTostr(va)
    else Edit1.Text:= 'ERROR';
    end else Exit;
    end;

    end.

Страница 1 из 2 12 ПоследняяПоследняя

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •