Board.KolibriOS.org

Official KolibriOS board
It is currently Tue Apr 23, 2019 11:31 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 196 posts ]  Go to page Previous 110 11 12 13 14 Next
Author Message
PostPosted: Tue Jun 18, 2013 1:25 pm 
Offline
User avatar

Joined: Thu May 30, 2013 5:56 pm
Posts: 31
Art_zh, спасибо, буду строить график красным 252-ым символом:
$FF0000.

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

procedure Alg1;
Spoiler: Show
Code:
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: Show
Code:
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


Attachments:
w545.PNG
w545.PNG [ 3.73 MiB | Viewed 3279 times ]


Last edited by VitZ on Mon Dec 15, 2014 3:45 pm, edited 10 times in total.
Top
   
PostPosted: Thu Jun 12, 2014 2:51 pm 
Offline
User avatar

Joined: Mon Jun 09, 2014 4:04 am
Posts: 5
Я тут немножко флуд почитал и сообщения о пророках) По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию... Тогда колибри будет везде у нас дорога... А на счет школ и промышленных предприятий задачча не самая сложная нужен энтузиазм коего у местных вагон и маленькая тележка и продвижение идеи в массы


Top
   
PostPosted: Fri Jun 13, 2014 12:08 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1304
che_shire@bk.ru wrote:
По факту ОС хорошая но недопиленная нужен браузер который бы понимал криптографию...

Ты прочитал как топик называется?

Не ходи сюда.

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Top
   
PostPosted: Fri Jun 12, 2015 5:50 pm 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
art_zh wrote:
Скорость конвейера какая?
Частота тахометра?
Период/скважность ШИМ?


Между мультиплексором-усилителем i7 и трёхфазным мотором можно поставить
Веспер EI-MINI.

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

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


Attachments:
45.jpg
45.jpg [ 20.97 KiB | Viewed 1802 times ]
Top
   
PostPosted: Fri Sep 22, 2017 11:29 am 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
Если в местном паскале многозадачной среды проработаны указатели,
то можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
между двумя процессами (задачами=раньше их называли exe-модули) -
для отделения процесса "изображение" - от процесса "драйвера". Обмен между процессами - можно сделать -
через бОльшие промежутки времени, чем время основного цикла опроса (основной цикл опроса - в процессе "изображение").


Top
   
PostPosted: Sat Sep 23, 2017 10:40 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
FedorAnullin wrote:
Если в местном паскале многозадачной среды проработаны указатели
Не понятно, что подразумевается под местным паскалем? И как именно должны быть проработаны указатели?
FedorAnullin wrote:
можно легко сделать ручное dde, для обмена данными (допустим = значение датчика)
между двумя процессами (задачами=раньше их называли exe-модули)
Ну вообще-то существуют системные функции для обмена данными между процессами(IPC, Shared Memory).


Top
   
PostPosted: Sat Sep 23, 2017 3:37 pm 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
0CodErr wrote:
... как именно должны быть проработаны указатели?

Смогу ли (без изучения ипц) перевести на местный (ссылка вверху этой страницы) паскаль
пример (реализованный на борланд паскале под виндус 98):
процесс номер один организует указателями несколько ячеек памяти в озу
и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
(второй процесс должен будет запускаться раньше первого);
после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
секунду каждой минуты,
а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
каждой минуты. (?)

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


Top
   
PostPosted: Sat Sep 23, 2017 6:58 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
FedorAnullin wrote:
ссылка вверху этой страницы
А, имеется в виду Pascal Pro.
FedorAnullin wrote:
Смогу ли
Без исходного кода трудно сказать.
FedorAnullin wrote:
процесс номер один организует указателями несколько ячеек памяти в озу
и через винт (врайт фп - рид фп) передаёт начальный адрес этих ячеек второму процессу
(второй процесс должен будет запускаться раньше первого);
после запуска обоих второй пишет какие-то данные в эти ячейки с 5 по 14ю (и с 35 по 44ю)
секунду каждой минуты,
а второй читает данные из этих ячеек с 20 по 29ю (и с 50 по 59) секунду
каждой минуты. (?)
Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.

Лично я Pascal Pro не использую, я использую Borland Delphi7.
На форуме есть соответствующая тема с примерами Delphi7 examples viewtopic.php?f=33&t=3469

Quote:
и через винт (врайт фп - рид фп) передаёт начальный адрес
Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).

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


Top
   
PostPosted: Sun Sep 24, 2017 6:54 am 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
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.

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


Top
   
PostPosted: Tue Sep 26, 2017 11:09 am 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
FedorAnullin wrote:
чтобы стырить байт из соседского процесса
Я ведь писал уже
0CodErr wrote:
Вообще у каждого процесса своё адресное пространство. Поэтому, чтобы писать именно "в эти ячейки", нужно использовать разделяемую память.
Если это так сложно то
0CodErr wrote:
Если быстродействие будет устраивать, то можно в принципе и всё "общение" проводить через файл на рам-диске(он и так в ОЗУ).
Один процесс пишет в файл на рам-диске, другой процесс читает из него.


Top
   
PostPosted: Tue Sep 26, 2017 1:47 pm 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
0CodErr wrote:
Один процесс пишет в файл на рам-диске, другой процесс читает из него.
А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?


Top
   
PostPosted: Tue Sep 26, 2017 2:26 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 432
Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..


Top
   
PostPosted: Tue Sep 26, 2017 2:34 pm 
Offline
User avatar

Joined: Fri Jun 12, 2015 5:44 pm
Posts: 6
FedorAnullin wrote:
А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске (не придётся ли ассемблерные вставки ужо - то есть покамест - применить)?
.. хотя что-то в нём проклёвывается - и не придётся (надо будет серию программных экспериментов сделать).


Attachments:
system-obd.JPG
system-obd.JPG [ 77.56 KiB | Viewed 1526 times ]
Top
   
PostPosted: Tue Sep 26, 2017 3:56 pm 
Offline

Joined: Sun Oct 30, 2011 6:43 pm
Posts: 1499
FedorAnullin wrote:
А где посмотреть примерец как средствами Pascal Pro записать запись в файл на рам-диске
Если хочется ковыряться именно с этим паскалем, то это дело хозяйское, конечно.
Но для Borland Delphi7 существуют примеры чтения и записи.
Необходимые функции объявлены в KolibriOS.pas и реализованы в KolibriOS.lib, которая уже в некоторой степени протестирована.
Вот так функции могут быть вызваны:
Code:
ReadFile(Path, Buffer, Count, LoPos, HiPos, BytesRead);
WriteFile(Path, Buffer, Count, LoPos, HiPos, BytesWritten);
Siemargl wrote:
Еще бы найти того, кто этот ПаскальПро проверит на работоспособность..
Маловероятно, что можно такого найти. Я лично понятия не имею, работает ли там что-то, и насколько правильно оно реализовано.


Top
   
PostPosted: Tue Sep 18, 2018 4:36 pm 
Offline

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

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

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 196 posts ]  Go to page Previous 110 11 12 13 14 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited