0 / 0 / 0
Регистрация: 03.05.2011
Сообщений: 5

Управление внешней программой из Trace Mode

19.12.2012, 10:17. Показов 4189. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет. В общем в этом деле я еще новичок)
Нужно сделать кнопку которая включает или выключает выполнение программы. Не получается реализовать эту идею. Может посоветуете че нить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.12.2012, 10:17
Ответы с готовыми решениями:

Trace Mode: управление жалюзи
Буду очень признателен. По заданию, в Trace Mode 6 нужно создать прогу, которая управляет жалюзи. С помощью селекторного переключателя...

Trace mode 6: автоматизированное управление работой эскалатора
Нужно сделать автоматизированное управление работой эскалатора, на котором, к примеру движется человек, кто может помочь,(trace mode 6)

Работа библиотечного FBD-блока "Управление задвижкой ZDV" (TRACE MODE)
Здравствуйте, не могу разобраться с блоком "управления клапаном/задвижкой". Подскажите пожалуйста какого типа переменный и данные...

8
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,454
19.12.2012, 11:05
может подергать атрибут 39 EXEC. вообще я просто передавал в программу флаг "выполняй" при отсутствии которого она не входила в тело, а сразу шла на выход (это была ST программа).
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
19.12.2012, 21:01
Нужно сделать кнопку которая включает или выключает выполнение программы
вариантов множество, начиная с управления через CALL.Exec, заканчивая DDE/OPC/файлом

...можно даже вызывать из user32 - SendMessage/PostMessage и ловить своей программой, если конечно своя, с сорцами.
0
13 / 13 / 0
Регистрация: 07.12.2012
Сообщений: 29
20.12.2012, 10:20
Смотря что понимается под "внешней программой" - если внутренний алгоритм проекта, то совет Vxg, если внешнее ПО, то как сказал Raxp. Однако в случае с внешним ПО - через штатный CALL.Exec получится только запустить приложение (и то с бубном придется плясать в ТМ по-другому никак), управлять его работой не получится. А если делать канал управления, пусть через API - огребете проблем с подключением внешних библиотек в ТМ. Он очень ограничен в форматах данных, не все получится прописать, поэтому я бы не стал надеяться на такие методы как SendMessage/PostMessage из user32.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,454
20.12.2012, 10:24
вроде нормально цепляли DLL... или вы в них экзотические структуры передаете?
0
13 / 13 / 0
Регистрация: 07.12.2012
Сообщений: 29
20.12.2012, 10:32
Да я в свое время какие только не подключал, даже умудрялся строковые переменные гонять. Но у ТМ есть куча скрытых "особенностей" по этому поводу, например: int надо как long обозначать (а то иногда в критическую ошибку вылетает в рантайме), со строками напрямую не работает - надо извращаться сильно, понимает только целочисленные данные, с плавающей точкой (float) почти всегда работает с потерей качества, массивы не поддерживаются (а зачастую ой как нужны), dll лучше всего делать в 6-й студии (dll собранные в других или вообще не подключаются, или надо снова с бубном плясать при их сборке под ТМ). В общем, это еще только "вершки".
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,454
20.12.2012, 11:10
гоняли double без какой либо потери точности. там вообще все гоняется без преобразования (преобразования могут быть только на входе в передающую программу там где TM автоматически типы может приводить) и никакие типы не нужно чужими именами называть - просто в документации уточняете что это за тип и находите ему соответствие в вашей среде. делали DLL в чем угодно: ms visual c++, borland c++ builder, dev-cpp. там просто нужно extern "C" __stdcall писать
0
13 / 13 / 0
Регистрация: 07.12.2012
Сообщений: 29
20.12.2012, 11:20
С интами видимо вам до сих пор просто везло, вообще объявлять int как long при прописывании подключения внешней функции - это даже как штатная рекомендация. А насчет double - с ним-то как раз не должно быть проблем, потому как есть подозрение сильное, что во многом внутри ТМ ведет обработку float'ов как double вот из-за этого-то и наблюдаются потери качества значения.
extern "C" __stdcall - всегда так объявлял функции. Насчет студий - например собранная в 2003-й студии Dll у меня не цеплялась, этот же исходник собранный в старой 6-й студии без проблем подключался.
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
20.12.2012, 23:01
Но у ТМ есть куча скрытых "особенностей" по этому поводу, например: int надо как long обозначать
согласен, столкнуся при написании своего OPC-сервера и отладке с ним TM клиентом.

Насчет сообщений: пока TC не упомянул, чья эта программа, есть ли исходники.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2012, 23:01
Помогаю со студенческими работами здесь

Trace mode 6
Здравствуйте все. Вопрос такого характера. Начал тут разбираться с Trace mode 6 и наткнулся на вот такую проблемку. Не пойму, как это...

Управление внешней программой
Доброго времени суток! Есть Форма с кнопкой, необходимо чтобы при нажатии на данную кнопку, нажималась кнопка Отправить в Telegramm...

Trace Mode
В разделе "Быстрый старт" описано подключение библиотек: "Воспользуемся пользовательской библиотекой компонентов. Для этого скопируем...

Таймер в Trace Mode
Возможно ли в Trace mode в программе ST сделать таймер? К примеру есть сигнал управления который генерирует программа, в ответ должен...

Достоверность (атрибут) в Trace Mode
0 бит достоверности - аппаратная недостоверность 1 бит достоверности - системная недостоверность в итоге 3 значения принимает: 0...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru