Общие сведения о MATLAB. Вспомогательные М и другие функции Инструменты разработки программного обеспечения

Язык технических вычислений

Миллионы инженеров и ученых во всем мире используют MATLAB ® , чтобы анализировать и разработать системы и продукты, преобразовывающие наш мир. Матричный язык MATLAB является самым естественным способом в мире выразить вычислительную математику. Встроенная графика облегчает визуализацию и понимание данных. Окружение рабочего стола способствует экспериментированию, исследованиям и открытиям. Эти средства MATLAB и возможности все строго протестированы и разработаны, чтобы работать совместно.

MATLAB помогает вам воплощать свои идеи за пределами рабочего стола. Можно запустить исследования больших наборов данных и масштабировать до кластеров и облаков. Код MATLAB может быть интегрирован с другими языками, позволив вам развернуть алгоритмы и приложения в сети, предприятии и промышленных системах.

Начало работы

Изучите основы MATLAB

Основы языка

Синтаксис, индексация и обработка массива, типы данных, операторы

Импорт и анализ данных

Импорт и экспорт данных, в том числе и больших файлов; предварительная обработка данных, визуализация и исследования

Математика

Линейная алгебра, дифференцирование и интегрирование, преобразования Фурье и прочая математика

Графика

2D и 3D графики, изображения, анимация

Программирование

Скрипты, функции и классы

Создание приложений

Разработка приложений с помощью App Designer, программируемого рабочего процесса или GUIDE

Инструменты разработки программного обеспечения

Отладка и тестирование, организация крупных проектов, интеграция с системой контроля версий, упаковка тулбоксов

M00 - останавливает выполнение программы после выполнения операций, содер­жащихся в кадре. Останавливает вращение шпинделя и охлаждающий по­ток. Сохраняет всю информацию, накопленную в памяти.

М01 - условная остановка программы: если трёхбуквенный код USO = 1 занесён с клавиатуры, функция М01 интерпретируется управлением как М00; если трёхбуквенный код USO = 0 подтвержден, функция М01 не учитывается.

M02 - определяет конец программы без перемотки ленты на начало.

M03 - вращение шпинделя по часовой стрелке.

M04 - вращение шпинделя против часовой стрелки.

M05 - остановка шпинделя и подачи охлаждения. Осуществляется после выпол­нения операций, содержащихся в кадре.

M06 - замена инструмента. Останавливает вращение шпинделя, подачу охлажде­ния и выполнение программы. Подтверждает корректировки, выбранные функцией Т. Осуществление становится возможным после выполнения ин­формации, содержащейся в кадре. Не стирает М03, М04, М08, М13, М14.

M07 - подача вспомогательного охлаждения.

M08 - подача основного охлаждения.

M09 - остановка охлаждения. Осуществляется после выполнения операций, со­держащихся в кадре.

M10 - блокировка линейных и вращающихся осей. При помощи этой функции осу­ществляется блокировка осей, не участвующих в процессе обработки.

М11 - отмена М10.

М12 - блокировка вращающихся осей. При помощи этой функции осуществляется блокировка осей, не участвующих в процессе обработки.

М13 - вращение шпинделя по часовой стрелке и подача охлаждения.

М14 - вращение шпинделя против часовой стрелки и подача охлаждения.

М19 - остановка вращения шпинделя с угловой ориентацией осуществима после операций, содержащихся в кадре. Отменяется функциями М03, М04.

М30 - автоматический СБРОС в конце программы. При помощи функции М30 сти­рается вся информация, находящаяся в динамическом буфере системы. Подтверждаются автоматически: начальная точка 0 и возобновление вы­бранной программы. Корректировка инструмента в шпинделе не стирает­ся.

М40 - отмена диапазона вращения шпинделя.

М42-М43-М44 - активизирует диапазон вращения шпинделя 1-2-3-4.

М45 - автоматическая смена диапазона вращения шпинделя.

М60 - замена детали.

При помощи программы логики представляется возможным определить эти функ­ции другим образом, добавляя или сокращая их. В каждом кадре можно программиро­вать до четырёх функций М.

Все функции М стираются при помощи выполнения режима «СБРОС, RESET ».

При кодировании информации следует иметь в виду, что в УЧПУ в исходном (начальном) состоянии установлены определенные значения подготовительных функций. Эти функции не следует про­граммировать. Их вводят (указывают) в программу лишь в том случае, если по ходу программы были запрограмми­рованы другие функции, отменяющие действие исходных. Например, в УЧПУ NC201M исходными (введенными в УЧПУ) является функция G00(быстрое позиционирование осей), G17 (плоскость интер­поляции XY),G27(Непрерывный режим обработки с автоматическим за­медлением скорости на углах), G20(Выход из программы GTL), G71(программирование в миллиметрах),G80(Отмена постоянных циклов),

G40 Отмена компенсации радиуса инструмента),G80(Отмена постоянных циклов),G90(Абсолютное программирование),G95(Скорость подачи в мм/об или дюйм/об), G96(Скорость резания в м/мин или фут/мин).

В настоящее время для программирования систем ЧПУ используется множество языков программирования, в основе которых лежит универсальный язык ИСО 7 бит. Однако каждый производитель вносит свои особенности, которые реализуются через подготовительные (G-коды) и вспомогательные (M-коды) функции.

Функции с адресом G – называются подготовительными , они определяют условия работы станка связанные с программированием геометрии перемещения инструмента. Подробное описание G-кодов можно найти в главе код ИСО 7 бит .

В данной главе подробно рассмотрим назначение вспомогательных функций.

Функции с адресом M – называются вспомогательными (от анг. Miscellaneous) и предназначены для управления различными режимами и устройствами станка.

Вспомогательные функции могут использоваться одиночно или совместно с другими адресами, например, кадр ниже производит установку инструмента с номером 1 в шпиндель.

N10 T1 M6, где

T1 – инструмент номер 1;
M6 – смена инструмента;

В данном случае под командой М6 на стойке ЧПУ скрывается целый набор команд, которые обеспечивают процесс замены инструмента:

Перемещение инструмента в позицию смены;
- выключение оборотов шпинделя;
- перемещение устанавливаемого инструмента в магазине;
- замена инструмента;

Использование М-кодов допускается в кадрах с перемещением инструмента, например в строке ниже охлаждение включится (M8) одновременно с началом движения фрезы.

N10 X100 Y150 Z5 F1000 M8

М-коды, включающие какое-либо устройство станка, имеют парный М код, который это устройство выключает. Например,

M8 – включить охлаждение, M9 – выключить охлаждение;
M3 – включить обороты шпинделя, M5 – выключить обороты;

Допускается использование нескольких М команд в одном кадре.

Соответственно чем больше устройств имеет станок, тем больше М команд будет задействовано в его управлении.

Условно все вспомогательные функции можно разделить на стандартные и специальные . Стандартные вспомогательные функции используются производителями ЧПУ для управления устройствами, имеющимися на каждом станке (шпиндель, охлаждение, смена инструмента и т.д.). Тогда как специальные программируют режимы на одном конкретном станке или группе станков данной модели (вкл/выкл измерительную головку, зажим/разжим поворотных осей).

На картинке выше представлен поворотный шпиндель многоосевого станка. Для увеличения жесткости при позиционной обработке станок оснащен зажимами поворотных осей, которые управляются М кодами: M10/M12 – включить зажимы для осей A и С. М11/М13 – выключить зажимы. На другом оборудовании производитель станка может данные команды настроить на управление другими устройствами.

Список стандартных М команд

M0 – останов программы;
M1 – останов по требованию;
M2 – конец программы;
M3 – включить обороты шпинделя по часовой стрелке;
M4 – включить обороты шпинделя против часовой стрелки;
M5 – останов шпинделя;
M6 – автоматическая смена инструмента;
M8 – включить охлаждение (как правило СОЖ);
M9 – выключить охлаждение;
M19 – ориентация шпинделя;
M30 – завершение программы (как правило со сбросом всех параметров);
M98 – вызов подпрограммы;
M99 – возврат из подпрограммы в основную;

Специальные вспомогательные функции производитель станка описывает в соответствующей технической документации.

2. Синтаксис определения и вызова M-функций .

Текст M-функции должен начинаться с заголовка , после которого следует тело функции .

Заголовок определяет " интерфейс" функции (способ взаимодействия с ней) и устроен следующим образом:

function [ RetVal1, RetVal2,… ] = FunctionName(par1, par2,…)

Здесь провозглашается функция (с помощью неизменного "ключевого" слова function) с именем FunctionName, которая принимает входные параметры par1, par2,…, и вырабатывает (вычисляет) выходные (возвращаемые) значения RetVal1, RetVal2…

По-другому говорят, что аргументами функции являются переменные par1, par2,.., а значениями функции (их надо вычислить) являются переменные RetVal1, RetVal2,… .

Указанное в заголовке имя функции (в приведённом примере - FunctionName) должно служить именем файла, в который будет записан текст функции. Для данного примера это будет файл FunctionName.m (расширение имени, по-прежнему, должно состоять лишь из одной буквы m). Рассогласования имени функции и имени файла не допускается!

Тело функции состоит из команд, с помощью которых вычисляются возвращаемые значения. Тело функции следует за заголовком функции. Заголовок функции плюс тело функции в совокупности составляют определение функции.

Как входные параметры, так и возвращаемые значения могут быть в общем случае массивами (в частном случае - скалярами) различных размерностей и размеров. Например, функция MatrProc1

function [ A, B ] = MatrProc1(X1, X2, x)

A = X1 .* X2 * x;

B = X1 .* X2 + x;

рассчитана на "приём" двух массивов одинаковых (но произвольных) размеров и одного скаляра.

Эти массивы в теле функции сначала перемножаются поэлементно, после чего результат такого перемножения ещё умножается на скаляр. Таким образом порождается первый из выходных массивов. Одинаковые размеры входных масивов X1 и X2 гарантируют выполнимость операции их поэлементного умножения. Второй выходной массив (с именем B) отличается от первого тем, что получается сложением со скаляром (а не умножением).

Вызов созданной нами функции осуществляется из командного окна системы MATLAB (или из текста какой-либо другой функции) обычным образом: записывается имя функции, после которого в круглых скобках через запятую перечисляются фактические входные параметры , со значениями которых и будут произведены вычисления. Фактические параметры могут быть заданы числами (массивами чисел), именами переменных, уже имеющими конкретные значения, а также выражениями.

Если фактический параметр задан именем некоторой переменной, то реальные вычисления будут производиться с копией этой переменной (а не с ней самой). Это называется передачей параметров по значению .

Ниже показан вызов из командного окна MATLABа ранее созданной нами для примера функции MatrProc1.

Здесь имена фактических входных параметров (W1 и W2) и переменных, в которых записываются результаты вычислений (Res1 и Res2), не совпадают с именами аналогичных переменных в определении функции MatrProc1. Очевидно, что совпадения и не требуется, тем более, что у третьего входного фактического параметра нет имени вообще! Чтобы подчеркнуть это возможное отличие, имена входных параметров и выходных значений в определении функции называют формальными.

В рассмотренном примере вызова функции MatrProc1 из двух входных квадратных матриц 2 x 2 получаются две выходные матрицы Res1 и Res2 точно таких же размеров:

Res1 =
9 6
6 6

Res2 =
6 5
5 5

Вызвав функцию

MatrProc1 = MatrProc1([ 1 2 3; 4 5 6 ], [ 7 7 7; 2 2 2 ], 1);

с двумя входными массивами размера 2x3, получим две выходные матрицы размера 2x3. То есть, одна и та же функция MatrProc1 может обрабатывать входные параметры различных размеров и размерностей! Можно вместо массивов применить эту функцию к скалярам (это всё равно массивы размера 1x1).

Теперь рассмотрим вопрос о том, можно ли использовать эту функцию в составе выражений так, как это делается с функциями, возвращающими единственное значение? Оказывается это делать можно, причём в качестве значения функции, применяемого для дальнейших вычислений, используется первое из возвращаемых функцией значений. Следующее окно системы MATLAB иллюстрирует это положение:

При вызове с параметрами 1,2,1 функция MatrProc1 возвращает два значения: 2 и 3. Для использования в составе выражения используется первое из них.

Так как вызов любой функции можно осуществить, написав произвольное выражение в командном окне MATLABа, то всегда можно совершить ошибку, связанную с несовпадением типов фактических и формальных параметров. MATLAB не выполняет никаких проверок на эту тему, а просто передаёт управление функции. В результате могут возникнуть ошибочные ситуации. Чтобы избежать (по-возможности) возникновения таких ошибочных ситуаций, предлагается в тексте M-функций осуществлять проверку входных параметров. Например, в функции MatrProc1 легко осуществить выявление ситуации, когда размеры первого и второго входных параметров различны. Для написания такого кода требуются конструкции управления, которые мы пока ещё не изучали. Самое время приступить к их изучению!

Понравилась статья? Поделитесь ей
Наверх