Page 13 of 14

Re: KolibriOS на производстве

Posted: Tue Jun 18, 2013 1:25 pm
by VitZ
Art_zh, спасибо, буду строить график красным 252-ым символом:
$FF0000.

10 В - это (в высоту) будет 300 пикселей, а U В -- 300*U/10=30*U пикселей.
Chislo_voltov_2:=round(30*chislo_voltov_1/100).

procedure Alg1;
Spoiler:

Code: Select all

procedure Alg1;
var s1,s2,s:string; x,y:dword;
begin
  x:=x+10;   
  s1:='#020';
  sc(s1);
  rc(s2);
  s[0]:=chr(5);
  s:=s2[3]+s2[4]+s2[5]+s2[7]+s2[8];
  y:=325-round((3*str5_to_num(s))/10); 
  k.writeText(x,y,$FF0000,0,chr(252));
end;
function str5_to_num(s:string):dword;
Spoiler:

Code: Select all

function str5_to_num(s:string):dword;
var c:char; i,cif1,cif2,cif3,cif4,cif5,cif:dword;
begin
  for i:=1 to 5 do begin
    c:=s[i];
    case c of
      '0': cif:=0;
      '1': cif:=1;
      '2': cif:=2;
      '3': cif:=3;
      '4': cif:=4;
      '5': cif:=5;
      '6': cif:=6;
      '7': cif:=7;
      '8': cif:=8;
      '9': cif:=9;
    end;
    case i of
      1: cif1:=cif;
      2: cif2:=cif;
      3: cif3:=cif;
      4: cif4:=cif;
      5: cif5:=cif;
    end;
  end;
  str5_to_num:=10000*cif1+1000*cif2+100*cif3+10*cif4+cif5;
end;
Вот тут описаны контроллеры, в которые мы можем залить сами:
http://vrtp.ru/index.php?showtopic=2211&st=3960 :wink:

Итого: скада (на нехитром MODBUS'овом замесе) может строиться
с помощью 5ти процедур - на ассемблере, а остальное - на паскале.

SCADA (аббр. от англ. supervisory control and data acquisition, диспетчерское управление и сбор данных) — программный пакет, предназначенный для разработки или обеспечения работы в реальном масштабе времени систем сбора, обработки, отображения и архивирования информации об объекте мониторинга или управления.

Вот тут паскаль про:
http://diamond.kolibrios.org/hll/hll_eng.htm ,
но может быть и где-то здесь:
viewtopic.php?f=9&t=2353 .

Для подстыковки нового i7-модуля (кроме переходника) - в него втыкается перемычка (INIT* на землю), вследствие чего он становится на адрес 01 и скорость 9600, после чего в него можно залить новые настройки (адрес, скорость и др.) (соответствующей отсылаемой строкой), на которые он встанет после вынимания перемычки (при включённом питании перемычку вынимать пока не пробовал).

i7017

Re: KolibriOS на производстве

Posted: Thu Jun 12, 2014 2:51 pm
by che_shire@bk.ru
Я тут немножко флуд почитал и сообщения о пророках) По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию... Тогда колибри будет везде у нас дорога... А на счет школ и промышленных предприятий задачча не самая сложная нужен энтузиазм коего у местных вагон и маленькая тележка и продвижение идеи в массы

Re: KolibriOS на производстве

Posted: Fri Jun 13, 2014 12:08 am
by art_zh
che_shire@bk.ru wrote:По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию...
Ты прочитал как топик называется?

Не ходи сюда.

Re: KolibriOS на производстве

Posted: Fri Jun 12, 2015 5:50 pm
by FedorAnullin
art_zh wrote:Скорость конвейера какая?
Частота тахометра?
Период/скважность ШИМ?
Между мультиплексором-усилителем i7 и трёхфазным мотором можно поставить
Веспер EI-MINI.

PS. Перед включением СУПчика крепко-накрепко отключите комп от интернета: в лучшем случае вирус может просто всё стереть (или стереть всё с ОЗУ, если вы загружаетесь с фзз (флешки с защитой от записи)).

PS2. оба чёрных идут по двум винтам; тумблер с 6-ью контактами: красный туда-сюда и
жёлтый туда-сюда (без выключения компа "канал" не переключать).

Re: KolibriOS на производстве

Posted: Fri Sep 22, 2017 11:29 am
by FedorAnullin
Если в местном паскале многозадачной среды проработаны указатели,
то можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
между двумя процессами (задачами=раньше их называли exe-модули) -
для отделения процесса "изображение" - от процесса "драйвера". Обмен между процессами - можно сделать -
через бОльшие промежутки времени, чем время основного цикла опроса (основной цикл опроса - в процессе "изображение").

Re: KolibriOS на производстве

Posted: Sat Sep 23, 2017 10:40 am
by 0CodErr
FedorAnullin wrote:Если в местном паскале многозадачной среды проработаны указатели
Не понятно, что подразумевается под местным паскалем? И как именно должны быть проработаны указатели?
FedorAnullin wrote:можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
между двумя процессами (задачами=раньше их называли exe-модули)
Ну вообще-то существуют системные функции для обмена данными между процессами(IPC, Shared Memory).

Re: KolibriOS на производстве

Posted: Sat Sep 23, 2017 3:37 pm
by FedorAnullin
0CodErr wrote:... как именно должны быть проработаны указатели?
Смогу ли (без изучения ипц) перевести на местный (ссылка вверху этой страницы) паскаль
пример (реализованный на борланд паскале под виндус 98):
процесс номер один организует указателями несколько ячеек памяти в озу
и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
(второй процесс должен будет запускаться раньше первого);
после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
секунду каждой минуты,
а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
каждой минуты. (?)

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

Re: KolibriOS на производстве

Posted: Sat Sep 23, 2017 6:58 pm
by 0CodErr
FedorAnullin wrote:ссылка вверху этой страницы
А, имеется в виду Pascal Pro.
FedorAnullin wrote:Смогу ли
Без исходного кода трудно сказать.
FedorAnullin wrote:процесс номер один организует указателями несколько ячеек памяти в озу
и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
(второй процесс должен будет запускаться раньше первого);
после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
секунду каждой минуты,
а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
каждой минуты. (?)
Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.

Лично я Pascal Pro не использую, я использую Borland Delphi7.
На форуме есть соответствующая тема с примерами Delphi7 examples http://board.kolibrios.org/viewtopic.php?f=33&t=3469
и через винт (врайт фп - рид фп) передаёт начальный адрес
Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).

Без исходного кода трудно сказать, как в этом случае будет лучше поступить.

Re: KolibriOS на производстве

Posted: Sun Sep 24, 2017 6:54 am
by FedorAnullin
0CodErr wrote:Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).
Для реальности времени (в случае увеличения скорости процессоров с каждым годом) важно
не быстродействие, а стабильность (чёткость, не расползаемость по оси времени, рассчитываемость
временных дельт с одной команды - до другой - хотя бы на максимум временного заполнения) выполняемых
процедур.

Исходник - на Борланд Паскале 7.01 (1993) под Виндоуз (1998) [без лицензий - ни
то, ни другое - не использовать! Опасно!]:

uses wintypes, winprocs, wincrt; {holst.pas}
var fp: file of pointer;
by: byte;
a_by: pointer;
begin
assign(fp, 'c:\bp\bin\7777777.dat');
reset(fp);
read(fp,a_by);
close(fp);
by:=a_by^; {}
writeln(by); {должно быть 77}
end.

uses wintypes, winprocs, wincrt; {drova.pas}
var fp: file of pointer;
by: byte;
a_by: pointer;
begin
a_by:=addr(by);
assign(fp, 'c:\bp\bin\7777777.dat');
rewrite(fp);
write(fp,a_by);
close(fp);
by:=77; {это PEREDACHA}
readln; {зависнуть - ждать второго}
end.

Наверное, ассемблерные вставки надо применить (чтобы стырить байт из соседского процесса).

Re: KolibriOS на производстве

Posted: Tue Sep 26, 2017 11:09 am
by 0CodErr
FedorAnullin wrote:чтобы стырить байт из соседского процесса
Я ведь писал уже
0CodErr wrote:Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.
Если это так сложно то
0CodErr wrote:Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).
Один процесс пишет в файл на рам-диске, другой процесс читает из него.

Re: KolibriOS на производстве

Posted: Tue Sep 26, 2017 1:47 pm
by FedorAnullin
0CodErr wrote:Один процесс пишет в файл на рам-диске, другой процесс читает из него.
А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?

Re: KolibriOS на производстве

Posted: Tue Sep 26, 2017 2:26 pm
by Siemargl
Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..

Re: KolibriOS на производстве

Posted: Tue Sep 26, 2017 2:34 pm
by FedorAnullin
FedorAnullin wrote:А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?
.. хотя что-то в нём проклёвывается - и не придётся (надо будет серию программных экспериментов сделать).

Re: KolibriOS на производстве

Posted: Tue Sep 26, 2017 3:56 pm
by 0CodErr
FedorAnullin wrote:А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске
Если хочется ковыряться именно с этим паскалем, то это дело хозяйское, конечно.
Но для Borland Delphi7 существуют примеры чтения и записи.
Необходимые функции объявлены в KolibriOS.pas и реализованы в KolibriOS.lib, которая уже в некоторой степени протестирована.
Вот так функции могут быть вызваны:

Code: Select all

ReadFile(Path, Buffer, Count, LoPos, HiPos, BytesRead);
WriteFile(Path, Buffer, Count, LoPos, HiPos, BytesWritten);
Siemargl wrote:Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..
Маловероятно, что можно такого найти. Я лично понятия не имею, работает ли там что-то, и насколько правильно оно реализовано.

Re: KolibriOS на производстве

Posted: Tue Sep 18, 2018 4:36 pm
by zero00m
<<Итого: скада (на нехитром MODBUS'овом замесе) может строиться
с помощью 5ти процедур - на ассемблере, а остальное - на паскале.>>

http://vrtp.ru/index.php?showtopic=30280&st=0

... есть вариант с-- (с ассемблерными вставками) модбус коос ...