Сообщения об ошибках в программе появляются в окне watch compile registre message

Обновлено: 03.07.2024







Что пишут в блогах

Подписаться

Онлайн-тренинги

Что пишут в блогах (EN)

Разделы портала

Про инструменты


Автор: Майкл Болтон

При этом не стоит полагаться и на операционную систему. Удивительно, но команды DOS COPY и XCOPY до сих пор не проводят проверку на наличие свободного места на диске перед началом копирования файлов; вместо этого копирование начинается “вслепую” с надеждой на то, что места будет достаточно. Windows ничуть не лучше, эта система тоже не проверяет диск на наличие свободного места перед копированием файлов. Хуже того, если вы одновременно копируете несколько файлов, Windows прерывает процесс копирования после обнаружения первой ошибки и “забывает”, какие файлы были выделены для копирования.

  • содержать информацию, которая не поможет в решении проблемы и на которую пользователь зря потратит время;
  • содержать бесполезную, избыточную, неполную или неверную информацию.

Хороший пример

«Система ATS потеряла связь с принтером. Для решения проблемы убедитесь, что принтер включен, и попробуйте запустить печать снова. Если напечатать документ не удается, убедитесь, что оба конца кабеля, соединяющего компьютер с принтером, надежно соединены с устройствами, и попробуйте снова запустить печать. Если и в этом случае проблема не устранена, свяжитесь с Джо Грантом по номеру (212) 555-1212 и сообщите ему, что программа выдает ошибку ATSPR35 в строке 31, модуль PRNFNC»

«Невозможно загрузить список новых групп. Произошла ошибка»

К этому тоже. Хотя оно выглядит не таким грозным как предыдущее.

Вам известно больше, чем вы сообщаете, и вы что-то скрываете? И кстати, как именно может помочь перезапуск Outlook?

«Переключение из режима Internet Only E-mail Service в режим Corporate or Workgroup E-mail Service может быть несовместимо с существующими приложениями»

Какими приложениями? В чём выражается несовместимость? Почему вы не устранили эту несовместимость? Ну, ещё повезло, что программа хотя бы не будет несовместима с несуществующими приложениями.

«Невозможно запустить программу. Возможно, один из компонентов занят или отсутствует. Пожалуйста, проверьте, правильность установки и попробуйте еще раз».

"Возможно". Компонент занят или отсутствует, или и то и другое? Если компонент используется, то какой именно компонент? Файл? Если так, можно узнать имя файла?

«Действие не может быть выполнено. Действие не может быть выполнено».

Правда? Правда? Какое действие? Какое действие? Что я должен сделать, чтобы устранить проблему? Что я должен сделать, чтобы устранить проблему?

«Невозможно найти файл cuecard.hlp. Хотите найти файл вручную?»

Нет, не хочу. Я хочу, чтобы вы его нашли.

«Невозможно найти файл cuecard.hlp. Проверьте наличие файла на вашем диске. Если файл не будет найден, переустановите его».

Программировать сейчас, конечно, сложнее, чем раньше. С каждым днем нужно осваивать все больше новых технологий, языков программирования, различных смежных дисциплин. От разработчиков требуют писать код быстрее, это оставляет меньше времени для размышлений о дизайне. Однако программистам и менеджерам не стоит обманываться – никто в компании не захочет взять на себя ответственность за дефекты и ошибки в программе, уже переданной на тестирование (или, хуже того, пользователю). Поэтому разработчики и менеджеры должны в своем рабочем плане выделить время на проектирование и на отладку, при необходимости закладывать больше времени и предусмотреть дополнительную помощь, особенно в вопросах, не требующих программирования, например, таких как разработка интерфейса пользователя.

Добавлено: Гриценко А.

Речь пойдёт о S7-PDIAG.

Итак, начнем. Конфигурация оборудования для проекта-примера

S7-PDIAG

Наша цель пройтись по данным пунктам

S7-PDIAG

Создадим FB10 с таким содержимым

S7-PDIAG

Поставим курсор на выход Q1.0 после этого вызовем меню

S7-PDIAG

S7-PDIAG

Пройдёмся немного по данному окну.

Initial diagnostic address – необходимо указать область для отслеживания (монито-ринга)

В области "Установки мониторинга /Monitoring Definition" необходимо установить требуемые Вам параметры: какой уровень сигнала Вы будете отслеживать ("0", "1" или же передний/задний фронт), время задержки (можете ввести в миллисекундах, в формате S7, или указать область, где хранится время задержки). Поля Monitoring Status & Acknowledgment status можно использовать для того, чтобы при срабатывании сигнала взвести какой-либо бит (I, Q, M, DB) и для квитации данного события.

Вызовем блок в ОВ1

S7-PDIAG

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

После компиляции у Вас в проекте появятся блоки необходимые PDIAG

S7-PDIAG

В ОВ1 добавьте ещё один сегмент и вызовете FB44

S7-PDIAG

Сохраните и закройте ОВ1.

После этого на необходимо сконфигурировать сам PDIAG.

Выбрав Ваши блоки в редакторе, через меню

S7-PDIAG

После чего, в открывшемся редакторе, Вам необходимо выполнить компиляцию Prosecc Diagnostics->Compile , появится окно настроек

S7-PDIAG

Как проверить нашу программу?

Поскольку "живого" ПЛК не было под рукой использовался PLCSIM. Итак, запускаем эмулятор, загружаем в него нашу программу. После чего переходим в режим Online

S7-PDIAG

S7-PDIAG

И установим следующий флажок в появившемся окне

S7-PDIAG

S7-PDIAG

S7-PDIAG

Вот, вкратце, и все. Если информация была кому-то полезна и S7-PDIAG необходимо кому-то в работе уже сейчас, но есть вопросы - пишите.

Комментарии к материалу

Добавлен: den_vish Дата: 2013-07-31

"После чего, в появившемся окне выберем шаблон "S7-PDIAG Address Monitoring""
дошел до этого пункта и увидел что кнопка - новый - неактивна, в чем подвох?

Добавлен: Гриценко Андрей Дата: 2013-07-31

Подвох в том, что у Вас неустановлен S7-PDIAG. Данный пакет необходимо ставить дополнительно. Лиценция приобретается у компании Siemens за отдельную плату.

Хорошая статья! Давайте еще что-нибудь интересное.

kybernetic, пожелание "что-нибудь" расплывчатое :-) Обозначьте тему - будет статья.

В чем преимущество этого способа перед вызовом функций Alarm_S

Добавлен: ignacio Дата: 2013-09-11

Хочу сказать спасибо автору сайта. Очень полезный ресурс :)

Добавлен: san Дата: 2013-09-21

Доступен ли даигностический буфер S7 средствам SCADA/HMI?

Добавлен: Гриценко Андрей Дата: 2013-10-09

Добавлен: Sergey Дата: 2014-03-05

Добавлен: Гриценко Андрей Дата: 2014-03-05

Добавлен: Гриценко Андрей Дата: 2014-03-05

Добавлен: Old Bell Дата: 2015-05-10

Ответ Нормана: «Прежде всего хватит называть людей "пользователями"— это живые создания, у которых есть чувства». От слова пользователь" нужно избавляться, так как мир населен не ими, а людьми». Люди совершают ошибки, однако, обычно в этом виноваты не они, а машины, компьютерные системы, или, если точнее, их разработчики.


Технологии создаются техническими специалистами, которые хорошо знают, что нужно для их верной работы: большой объем точных и верных данных. Однако то, что хорошо для машин, совсем не хорошо для людей, заключает Норман: «Чаще всего человек не так хорош в плане точности и четкости. Если заставить людей вести себя как машины, конечно же, они наделают ошибок». Программисты обычно называют это ошибками пользователя, но вообще-то правильнее говорить об ошибке машины, или, если угодно, о плохом дизайне, считает автор статьи.

Так дело не пойдет, ты что не мог подумать получше? Название файлов с точкой — это наш секретный ход для именования системных документов. Тебе так делать нельзя, давай ка проверни все еще разок.

Вся проделанная работа, соответственно, была потеряна.

К сожалению, вы указали точку первым символом в названии файла, но такие файлы используются системой. Вы можете начать название с любой цифры, буквы или символа, кроме точки. Пожалуйста, отредактируйте название файла и нажмите «Сохранить».

Тут нужно было бы дать возможность просто отредактировать то, что человек так упорно печатал.

Создателям программных продуктов нужно переходить к философии, в центре которой находится человек, так как не сушествует «человеческих ошибок». Практически всегда, по мнению автора, эта фраза означает плохой дизайн и ужасные процедуры, которые просто вынуждают людей ошибаться: «Нельзя заставлять человека делать несвойственные ему вещи, он сразу начнет ошибаться (сюда же относится молчание насчет того, как сделать что-то так, как надо программисту, до того, как он сделает это неправильно и даст повод себя наказать)».

С этим мнением, с некоторыми оговорками, соглашаются и эксперты Рунета.


Егор Гилёв,директор по UX в Acronis

1. Исключить возможность «ошибки», используя специальные элементы управления, не допускающие ввод неправильных данных. Например, для числового значения с определенным минимумом и максимумом вместо обычного поля ввода можно использовать слайдер. Вместо поля ввода даты — наглядный календарь. Однако, это палка о двух концах. Может пострадать скорость работы пользователя: вместо того, чтобы быстро настучать всё с клавиатуры, приходится много двигать мышкой.

2. Расширить возможности интерпретации введенных данных. Многие «ошибки» не так уж сложно предугадать. Например, если дробные числа введены с неправильным разделителем (точка вместо запятой, или наоборот), это можно понять и простить. Дата может быть представлена по-разному: «15 мая», «15.05.2014», «ближайший четверг», или «завтра» — ошибочным не является ни один из этих вариантов, хотя компьютерные интерфейсы редко допускают такую гибкость. А зря.


Сергей Кудряшов,CEO Softorino



Универсального решения задачи «чем заменить MessageBox-ы» не существует — просто надо думать не над «поведением системы», а над «поведением пользователя». Это затратнее для разработки, но окупается их лояльностью.


Дмитрий Васильев, директор NetCat CMS

Я стараюсь придерживаться следующих принципов на эту тему:

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

3. Не только давать пример заполнения, но и объяснять, зачем это нужно. «Ваша дата рождения нигде не будет публиковаться, она нужна нам только составления персональных предложений», «На этот номер будет выслан SMS, когда ваш заказ будет готов к отправке».

И очень важный постулат: если ощутимое количество пользователей ошибаются при работе с нашим сайтом/сервисом, это больше говорит не о них, а о качестве проектирования.


Константин Кичинский, технический евангелист Microsoft Russia

Такие ситуации встречаются сплошь и рядом. Для многих сценариев известно, как с ними бороться:

– изначальное мягкое направление в правильное русло (формирование ожиданий, обучение);

– ограничения ввода (контроль процесса, предупреждение ошибок);

– понятное человеку информирование о возникшей ситуации (минимизация стресса);

– продуманный процесс ее исправления (содействие, помощь) и т.п.

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

Сложность же заключается в том, что хотя мы говорим о человеко-машинном взаимодействии, в сущности, это все еще взаимодействие людей, хотя и разнесенное во времени и пространстве. Программа -- это продукт человеческого труда, ошибки в машинах и программах -- это результат конкретных человеческих действий на разных уровнях (либо недостаточно контролируемых случайных процессов, что в определенном смысле тоже ошибка).

Возникновение в приложении ошибки (исключительной ситуации) — это именно человеческий промах со стороны авторов программы. Ошибка обычно появляется не потому, что они плохие или злые, а потому что в некоторый момент времени было принято соответствующие решение, исходя из имевшихся представлений и ограничений, либо наоборот не было принято правильного решения из-за незнания, неполноты картины и т.п.. Причем, то, что мы сегодня можем назвать «плохим дизайном», вчера могло быть банально экономически оправданным или считаться нормой в определенной среде (например, тестовой группе или среди принимающих решение).

Проблема «плохого» дизайна тут возникает не из-за того, что пользователя не посчитали человеком или не встали на его сторону, а потому что разработчик поставил на место пользователя себя и понял, что это приемлемое стандартное решение.

Еще он мог подумать, что это не очень хорошее решение, но за два часа это максимум «хорошего», что он мог сделать. Делать новый системный элемент управления и изменять всю логику создания файлов было бы слишком накладным. Система стала лучше, чем была, но не достаточно хорошей. Возможно, потом, когда-нибудь, добавил тикет.

И это не оправдание программиста или его руководителя, или «плохого» дизайнера. Иногда конкретное решение может быть лучшим в рамках имеющихся ограничений. В таких случаях еще про шашечки вспоминают. Можно только добавить: «Вот заработаю на шашечки — и поставлю».


Илья Александров, ведущий проектировщик интерфейсов проекта Simkomat

Я бы рассмотрел бескомпромиссное заявление, обозначенное в заголовке статьи, с двух сторон.

Дон Норман евангелист, а подобные очерки — это напоминалка нам, дизайнерам, в какую сторону двигаться.


Макс Десятых,креативный директор Redmadrobot

Когда я думаю о том, что в этом материале высказал автор, во мне борются двое: один — преисполнен гуманизмом и полностью согласен: «Время и эмоции человека — слишком ценны, чтобы тратить их на несовершенства программного обеспечения. Инженерам и дизайнерам интерфейса следовало позаботиться об этом». Второй — возмущён и брызжет слюной: «А не обнаглел ли ты совсем, дорогой Дон?! Эти ребята сделали для тебя лучший в мире компьютер, который ты купил за смешные деньги, с которым ты можешь создавать невероятные вещи, а ты сделал скриншот, пошел в интернет и оставил там этот пост!»

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

– люди — это не абстрактные пользователи, а человеки, живущие в своём мире, в своих ситуациях, со своими переживаниями;

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

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

1. Дай человеку шанс заранее узнать, как всё сделать правильно в твоём интерфейсе. Напиши это. И нарисуй.

2. По возможности не дай человеку ошибиться. Спрячь всё, что не надо нажимать.

4. Помни, что выполнить первые три правила не всегда возможно. Воспользуйся здравым смыслом.

Compile error in hidden module: mod_AACTIONS.
This error commonly occurs when code is incompatible with the version, platform, or architecture of this application. Click "Help" for information on how to correct this error.


Причины проблемы

Проблема чаще всего проявляется на Office 2013, и вызвана тем, что некоторые скриптовые элементы управления в Office 2013 считаются «устаревшими» по соображениям безопасности.
В надстройке «Парсер сайтов» проблема вызвана использованием компонента Web Browser на формах VBA.

Подробно о причинах проблемы (Kill Bit) и способах решения написано в статьях на сайте Microsoft: ссылка1, ссылка2.

Как проверить, действительно ли в вашем случае проблема именно эта:

Как решить проблему с ошибкой компиляции:

  • запускаете (предварительно надо извлечь файл из архива) прикреплённый к статье файл VBA_WebBrowser_FixCompilationError.reg,
    на вопрос «Вы действительно хотите добавить информацию из этого файла в реестр» отвечаете «ДА»
  • перезапускаете Excel (если не поможет, то перезагружаете компьютер)

Содержимое файла VBA_WebBrowser_FixCompilationError.reg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ 15.0\ClickToRun\REGISTRY\MACHINE\Software\Wow6432Node\ Microsoft\Office\15.0\Common\COM Compatibility\ ]
"Compatibility Flags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ 16.0\ClickToRun\REGISTRY\MACHINE\Software\ Wow6432Node\Microsoft\Office\16.0\ Common\COM Compatibility\]
"Compatibility Flags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ Microsoft\Office\15.0\ Common\COM Compatibility\ ]
"Compatibility Flags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ Microsoft\Office\16.0\ Common\COM Compatibility\ ]
"Compatibility Flags"=dword:00000000

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Office\Common\COM Compatibility\ ]
"Compatibility Flags"=dword:00000000

[HKEY_LOCAL_MACHINE\Software\Wow6432Node\ Microsoft\Office\Common\COM Compatibility\ ]
"Compatibility Flags"=dword:00000000

Читайте также: