Pull to refresh

Светофор на ПЛК – все языки МЭК 61131-3

Reading time 2 min
Views 46K
Programming *Industrial Programming *
В прошлой статье Светофор на ПЛК – 30 блоков программа для ПЛК светофора была написана только на FBD.
Новая программа использует все 5 языков стандарта МЭК 61131-3.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 0

Патч для гипервизора сознания

Reading time 4 min
Views 149K
Biotechnologies
Sandbox
image

Недавно в топе Хабра появился пост, заставивший меня вылезти из read-only: «Overclock мозга или внутрення виртуализация сознания».
Вводящее в заблуждение название и не менее спорное содержание. Неприятные ощущения вызывает еще и тот факт, что при всей неточности и искажении фактов автор осмелился прикрепить к нему метку tutorial.

Желающих взглянуть на осознанные сновидения без налета авторской фантазии, прошу под кат.
Читать дальше →
Total votes 135: ↑113 and ↓22 +91
Comments 168

Трюки при линковке и загрузке файлов Mach-O

Reading time 26 min
Views 4.9K
Development for iOS *System Programming *Development for MacOS *
Translation

Представляю вашему вниманию перевод моей статьи из блога Проекта Darling. Маленькая справка по используемым понятиям: Darwin – операционная система с открытым исходным кодом, лежащая в основе macOS, iOS и других ОС от Apple; Mach-O – бинарный формат исполняемых файлов и библиотек, использующийся в Darwin; dyld – динамический загрузчик, использующийся в Darwin для загрузки файлов Mach-O; dylib – динамически загружаемая библиотека (обычно имеет расширение .dylib).


Картинка для привлечения внимания


Цель Проекта Darling – сделать возможным запуск macOS-приложений под Linux, и умение загружать бинарные файлы в формате Mach-O – один из ключевых шагов к достижению этой цели.


Исходно, Darling был выстроен вокруг собственной реализации загрузчика Mach-O и идеи транслирования вызовов между высокоуровневым Darwin API и его Linux-аналогами. С тех пор наш фокус сместился на запуск кода во всё более и более изолированном Darwin-контейнере. С тех пор как мы перешли на использование Mach-O для внутренних компонентов Darling, у нас появилась возможность использовать исходный dyld от Apple, а также собирать многие другие компоненты Darwin с открытым исходным кодом. Нам всё ещё нужен простой загрузчик Mach-O, чтобы загружать сам dyld.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 6

Реализация горячей перезагрузки С++ кода в Linux и macOS: копаем глубже

Reading time 12 min
Views 8K
C++ *Development for MacOS *Development for Linux *


*Ссылка на библиотеку и демо видео в конце статьи. Для понимания того, что происходит, и кто все эти люди, рекомендую прочитать предыдущую статью.


В прошлой статье мы ознакомились с подходом, позволяющим осуществлять "горячую" перезагрузку c++ кода. "Код" в данном случае — это функции, данные и их согласованная работа друг с другом. С функциями особых проблем нет, перенаправляем поток выполнения из старой функции в новую, и все работает. Проблема возникает с данными (статическими и глобальными переменными), а именно со стратегией их синхронизации в старом и новом коде. В первой реализации эта стратегия была очень топорной: просто копируем значения всех статических переменных из старого кода в новый, чтобы новый код, ссылаясь на новые переменные, работал со значениями из старого кода. Конечно это некорректно, и сегодня мы попытаемся исправить этот изъян, попутно решив ряд небольших, но интересных задач.


В статье опущены детали, касающиеся механической работы, например чтение символов и релокаций из elf и mach-o файлов. Упор делается на тонких моментах, с которыми я столкнулся в процессе реализации, и которые могут быть полезны кому-то, кто, как и я недавно, ищет ответы.

Читать дальше →
Total votes 40: ↑40 and ↓0 +40
Comments 8

Делаем процесс разработки тяжеловесного программного обеспечения под микроконтроллеры более удобным (нет)

Reading time 18 min
Views 9.6K
C++ *Compilers *C *Programming microcontrollers *Build automation *
Tutorial
Сейчас уже никого не удивить микроконтроллерами с энергонезависимой (чаще всего Flash) памятью объемом 512 килобайт и более. Их стоимость постепенно снижается, а доступность напротив, растет. Наличие такого объема энергонезависимой памяти дает возможность писать «тяжелые» по объему занимаемой памяти приложения, облегчая при этом последующее сопровождение кода за счет использования готовых решений из различных стандартных библиотек. Однако это ведет к росту объема файла прошивки целевого устройства, который требуется каждый раз целиком заново загружать в энергонезависимую память микроконтроллера при малейшем изменении в коде.

Цель статьи — рассказать о методе построения проекта на C и/или C++, при котором, в случае изменения участка кода, отладка которого производится чаще всего, большая часть проекта не нуждалась в повторной перезаписи. А так же показать, почему данный метод не всегда является эффективным решением.
Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 19

C/C++. Как использовать внедряемые ресурсы приложения, при работе в GCC на Linux

Reading time 3 min
Views 7.7K
C++ *

Захотелось как-то мне использовать в Linux внедряемые ресурсы, причём, автоматически. В общем, задача такая:


  1. Имеется Eclipse проект программы на C++.
  2. ОС: Linux Ubuntu. Компилятор: G++
  3. В проекте используются данные из внешних файлов: строки локализации, SQL-запросы, картинки, звуки и т.д.
  4. Все ресурсы необходимо внедрить в исполняемый файл, ибо программу планируется распространять, как портативную.
  5. Кроме того, хочется, что бы процесс был максимально автоматизирован, ибо лень.
Если интересно, как мне это удалось, то прошу под кат...
Total votes 22: ↑21 and ↓1 +20
Comments 20

Apple и Microsoft наверняка мечтают брать 30% со всех десктопных программ

Reading time 6 min
Views 24K
VDSina.ru corporate blog Development for MacOS *Software Finance in IT IT-companies

Файрвол не может блокировать трафик из macOS

На прошлой неделе в интернете поднялась шумиха по поводу того, что Apple отслеживает каждый запуск каждого приложения в macOS — и отправляет данные на «материнский корабль» в виде хэша, с IP-адресом («Ваш компьютер на самом деле не ваш»). По ходу выяснилось, что она делает это уже два года. Раньше была возможность заблокировать такое поведение с помощью файрвола типа Little Snitch, однако новая версия macOS 11.0 Big Sur научилась обходить файрволы и VPN. За шпионаж и слив данных отвечает служба Gatekeeper, которую никак нельзя заблокировать.

Причины для внедрения такой функции в операционную систему неизвестны. Похоже, Apple собирается контролировать, что на компьютере запускаются только «правильные» приложения.
Читать дальше →
Total votes 89: ↑77 and ↓12 +65
Comments 244

Всё не то и всё не так — когда твой компьютер ПЛК

Reading time 3 min
Views 10K
Abnormal programming *Programming *Industrial Programming *SCADA *Electronics for beginners
Tutorial

Статья указывает на особенности разработки для промышленных контроллеров. Написана для объеденения программистов данного направления.

Если мем понял - добро пожаловать под кат, эта статья для тебя.

Если хочешь понять мем - смело жми ПУСК.

ПУСК
Total votes 17: ↑13 and ↓4 +9
Comments 51

Про поворотный стол, или Релейная логика глазами дилетанта

Reading time 8 min
Views 5.9K
Industrial Programming *Programming microcontrollers *

Попросили меня как-то друзья помочь с программированием контроллера поворотного стола для фотографирования. Эти столы используются для круговой съёмки. Часто результат такой съёмки можно видеть в интернет-магазинах, когда товар можно покрутить и рассмотреть с разных сторон.

Как сделать фото 360°? Можно поставить объект на поворотную платформу, затем вручную перемещать её на определённый угол и щёлкать затвором фотоаппарата. Но лучше этот процесс автоматизировать.

Друзья мои давно занимаются этим бизнесом, сами разрабатывают и делают автоматизированные поворотные столы разных размеров на основе шагового двигателя с контроллером. Раньше у них применялся контроллер, работающий под управлением компьютера. Потом производство этих контроллеров прекратилось, и потребовалось написать программу для нового автономного контроллера.

Дело для меня совершенно новое. Я никогда не занимался АСУ, с релейно-контактной логикой незнаком, про ПЛК не слышал. Ну что ж, тем интереснее будет разобраться, что такое релейная логика и что представляют из себя языки LD (Ladder Diagram) и IL (Instruction List).

Читать далее
Total votes 20: ↑19 and ↓1 +18
Comments 27