<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC</id>
	<title>Управление роботом-манипулятором - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://digida.mgpu.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC"/>
	<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC&amp;action=history"/>
	<updated>2026-05-23T14:41:24Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>http://digida.mgpu.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC&amp;diff=6880&amp;oldid=prev</id>
		<title>Madara: Новая страница: «Удаленное управление включает в себя два режима работы:  &lt;br&gt; 1) сервер (компьютер, подключенный к управляющему устройству);  &lt;br&gt; 2) при нажатии на кнопку «Сервер» программа переходит в режим прослушивания порта для ожидания подключения.   &lt;br&gt; Клиент (удаленн...»</title>
		<link rel="alternate" type="text/html" href="http://digida.mgpu.ru/index.php?title=%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D0%BC-%D0%BC%D0%B0%D0%BD%D0%B8%D0%BF%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%BC&amp;diff=6880&amp;oldid=prev"/>
		<updated>2022-12-22T18:47:13Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Удаленное управление включает в себя два режима работы:  &amp;lt;br&amp;gt; 1) сервер (компьютер, подключенный к управляющему устройству);  &amp;lt;br&amp;gt; 2) при нажатии на кнопку «Сервер» программа переходит в режим прослушивания порта для ожидания подключения.   &amp;lt;br&amp;gt; Клиент (удаленн...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Удаленное управление включает в себя два режима работы: &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1) сервер (компьютер, подключенный к управляющему устройству); &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2) при нажатии на кнопку «Сервер» программа переходит в режим прослушивания порта для ожидания подключения. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Клиент (удаленный компьютер) &lt;br /&gt;
Для подключения в режиме клиента в текстовое поле вводится адрес&lt;br /&gt;
сервера. При отсутствии удаленного подключения на форме отображается&lt;br /&gt;
надпись «Локальное управление» без выделения, при удаленном – «Подключен в режиме Сервер» и «Подключен в режиме Клиент» соответственно. &lt;br /&gt;
На других формах также будет отображаться текущее состояние. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
При подключении в режиме сервера управляющие кнопки будут неактивными для исключения возможности вмешательства в процесс. &lt;br /&gt;
Наблюдение за движением робота происходит с помощью USB-камеры, что позволяет очень точно позиционировать схват манипулятора. &lt;br /&gt;
&lt;br /&gt;
Загрузка видео с камеры состоит из двух частей. &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
1 Установка параметров изображения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Basic&amp;quot; line&amp;gt;&lt;br /&gt;
Public Touchless As New TouchlessLib.TouchlessMgr&lt;br /&gt;
Public WebkaAs TouchlessLib.Camera = Touchless.Cameras.Item(0) &lt;br /&gt;
Dim command As String&lt;br /&gt;
Delegate Sub SetTextCallback(ByVal [text] AsString) &lt;br /&gt;
Private Sub Form1_Load(sender AsSystem.Object, e AsSystem.EventArgs) &lt;br /&gt;
Handles MyBase.Load &lt;br /&gt;
If Touchless.Cameras.Count &amp;lt;&amp;gt; 0 Then&lt;br /&gt;
 Webka = Touchless.Cameras.Item(0) &lt;br /&gt;
 Touchless.CurrentCamera = Webka &lt;br /&gt;
 Touchless.CurrentCamera.CaptureHeight = 480 &lt;br /&gt;
 Touchless.CurrentCamera.CaptureWidth = 640 &lt;br /&gt;
End If&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2 Получение изображения&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Basic&amp;quot; line&amp;gt;&lt;br /&gt;
Private Sub Timer1_Tick(sender AsObject, e AsEventArgs) Handles Timer1.Tick &lt;br /&gt;
PictureBox1.Image = Touchless.CurrentCamera.GetCurrentImage &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Программа позволяет строить сложные задачи, включающие в себя циклы, множественные повторы и динамические переходы к различным частям&lt;br /&gt;
управляющей программы. &lt;br /&gt;
&lt;br /&gt;
Ниже приведены ключевые слова, используемые при формировании&lt;br /&gt;
управляющей программы: &lt;br /&gt;
&amp;quot;BEGIN&amp;quot; – начало программы&lt;br /&gt;
&amp;quot;FINISH&amp;quot;– конец программы&lt;br /&gt;
&amp;quot;DO:&amp;quot; – начало подпрограммы&lt;br /&gt;
&amp;quot;END_DO&amp;quot;– конец подпрограммы&lt;br /&gt;
Приведен пример программного кода, осуществляющий автоматическое&lt;br /&gt;
управление: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Basic&amp;quot; line&amp;gt;&lt;br /&gt;
Dim q As String &lt;br /&gt;
Dim i, b, k, r, t, m As Integer &lt;br /&gt;
b = RichTextBox2.GetLineFromCharIndex(RichTextBox2.Find(&amp;quot;BEGIN&amp;quot;)) &lt;br /&gt;
k = RichTextBox2.GetLineFromCharIndex(RichTextBox2.Find(&amp;quot;FINISH&amp;quot;)) &lt;br /&gt;
Fori = b + 1 To k - 1 &lt;br /&gt;
&amp;#039;начало&lt;br /&gt;
If (Microsoft.VisualBasic.Left(RichTextBox2.Lines(i), 3) = &amp;quot;DO:&amp;quot;) Then &lt;br /&gt;
r = CInt(Microsoft.VisualBasic.Right(RichTextBox2.Lines(i), &lt;br /&gt;
Len(RichTextBox2.Lines(i)) - 3)) &lt;br /&gt;
For t = 0 To r - 1 &lt;br /&gt;
m = 0 &lt;br /&gt;
DoWhileRichTextBox2.Lines(i + m) &amp;lt;&amp;gt;&amp;quot;END_DO&amp;quot;&lt;br /&gt;
m += 1 &lt;br /&gt;
IfRichTextBox2.Lines(i + m) &amp;lt;&amp;gt;&amp;quot;END_DO&amp;quot;Then &lt;br /&gt;
q = RichTextBox2.Lines(i + m) &lt;br /&gt;
SerialPort1.Write(q &amp;amp;vbCr) &lt;br /&gt;
SleepVB(20) &lt;br /&gt;
EndIf &lt;br /&gt;
Loop &lt;br /&gt;
Next &lt;br /&gt;
i += m + 1 &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Цикловое управление требует задержки на выполнение команды (в программе задержка установлена в размере 20 с). Задержка осуществлена отдельной функцией. Для сокращения времени ожидания в функции паузы осуществляется проверка конца операции. После окончания выполнения каждой операции в специальное текстовое поле выводится текст, содержащий ответ порта (положение манипулятора и т. д.). Ключевое слово, определяющее завершение операции&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Basic&amp;quot; line&amp;gt;&lt;br /&gt;
&amp;quot;READYR:&amp;quot;, используется для окончания функции паузы: &lt;br /&gt;
SubSleepVB(Seconds) &lt;br /&gt;
Dim Start AsDouble&lt;br /&gt;
Start = Microsoft.VisualBasic.DateAndTime.Timer &lt;br /&gt;
DoWhileMicrosoft.VisualBasic.DateAndTime.Timer&amp;lt; &lt;br /&gt;
Start + Seconds &lt;br /&gt;
Application.DoEvents() &lt;br /&gt;
IfRichTextBox1.Text.ToLower.Contains(&amp;quot;READYR:&amp;quot;) &lt;br /&gt;
Then&lt;br /&gt;
 RichTextBox1.Text = &amp;quot;&amp;quot;&lt;br /&gt;
Exit Do&lt;br /&gt;
EndIf&lt;br /&gt;
Loop&lt;br /&gt;
EndSub&lt;br /&gt;
Пример кода управляющей программы: &lt;br /&gt;
«BEGIN &amp;#039; начало программы &lt;br /&gt;
HOME ‘ переход в начальное положение&lt;br /&gt;
M10 ‘ схват разжать &lt;br /&gt;
DO:3 &amp;#039; начало цикла. повторить 3 раза&lt;br /&gt;
G01X00000Y00000Z00500F00000 &lt;br /&gt;
G01X00000Y00000Z00000F00000 &lt;br /&gt;
END_DO &amp;#039;Конец цикла повторов&lt;br /&gt;
M11 ‘ схват сжать&lt;br /&gt;
FINISH &amp;#039; конец программы»&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Madara</name></author>
	</entry>
</feed>