среда, 22 ноября 2017 г.

Панель быстрого запуска в Windows 7

Как известно, корпорация Microsoft, начиная с Windows Vista, последовательно ухудшает интерфейс операционной системы, который в совершенном виде присутствовал в Windows XP и не требовал никаких изменений. В настоящее время (ноябрь 2017 года) единственной приемлемой для работы операционной системой является Windows 7 SP1. Несмотря на изуродованный интерфейс, его можно преобразить до уровня Windows XP, используя Classic Shell.

Однако, вернувшись в нормальный классический вид, я обнаружил, что панель быстрого запуска работает как-то странно: значки ярлыков, расположенные слева от панели задач пропадают сразу после запуска соответствующего приложения, а если уже были открытые окна, то новые, вызванные через панель быстрого запуска, добавляются в панель задач не справа, как положено, а на том месте, где располагается ярлык вызова.
Оказалось, что это никакая не панель быстрого запуска, а всё то же продолжение панели задач, на которую тоже можно добавлять ярлыки. А панель быстрого запуска в WIndows 7 вообще отсутствует. Но её можно организовать, делается это просто:

1. Правой кнопкой мыши на панели задач, в выпадающем меню выбираем Панели -> Создать панель инстументов...


2. В появившемся диалоговом окне ввести в нижней строке

%AppData%\Microsoft\Internet Explorer\Quick Launch

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

3. Правой кнопкой мыши на панели задач, в выпадающем меню снимаем галочку с пункта "Закрепить панель задач"

4. Правой кнопкой мыши по надписи "Quick Launch", снимаем галочки с пунктов "Показывать подписи" и "Показывать заголовки" (любители ублюдочного "ленточного" интерфейса последнюю галку могут не снимать)

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

6. Правой кнопкой мыши на панели задач, в выпадающем меню ставим галочку на пункте "Закрепить панель задач"

среда, 26 июля 2017 г.

Отключить встроенный автоматический просмотр PDF в Firefox

давно раздражает совершенно ненужная функция браузера - просмотр pdf. Раздражает, потому что ни в одном браузере эта функция пока не реализована по-человечески, постоянно всё тормозит, глючит и ни в какое сравнение с просмотром в нормальном просмотрщике (читай - Foxit Reader'e) ни идёт. Это касается как встроенный плагинов, так и внешних. Причем внешние плагины легко отключаются, как известно, а встроенные через одно место. Ну, в частности, для отключения ненужной функции просмотра pdf в Firefox нужно следующее:

1. открыть страницу about:config

2. найти пункт pdfjs.disabled

3. установить его в состояние true

четверг, 23 марта 2017 г.

Проблема с WinCC Flexible - перестали открываться проекты

Несколько лет назад была у меня проблема с WinCC Flexible 2008 SP3 касательно того, что проект во время открытия вдруг переставал загружаться (т.е. ProgressBar на экране доходил примерно до середины - и arrivederci). Тут намедни возникла всё та же проблема, только с WinCC Flexible Smart. Видимо у них это общая болезнь, поэтому не лишним будет вспомнить способ исцеления, а именно сброс настроек WInCc Flexible.

Итак, удаляем вот эти папки и всё:
C:\Documents and Settings\All Users\Application Data\SIEMENS AG\SIMATIC WinCC flexible ХХХ
C:\Documents and Settings\USER NAME\Application Data\SIEMENS AG\SIMATIC WinCC flexible ХХХ
C:\Documents and Settings\USER NAME\Local Settings\Application Data\SIEMENS AG\SIMATIC WinCC flexible ХХХ

(вместо "ХХХ" будет конкретная версия программы)

У меня в связи с этим всплыл ещё один нюанс. Как известно, Microsoft с некоторых пор зачем-то озаботился никому не нужной безопасностью в Windows (никому не нужной, потому что те, кому нужна безопасность, Windows'ом не пользуется), и напридумывал всяких ограничений по доступу к файлам. Т.е. попытка открыть папку "Documents and Settings" приводила к сообщению, что отказано в доступе. Не оказалось проблемой это обойти, но не лишним будет вспомнить, как сие делается:

1. Заходим в свойства папки, вкладка "Безопасность", жмём кнопку "Дополнительно"



2. В окрывшемся окне выбираем вкладку "Владелец" и меняем его на себя, конечно же

воскресенье, 25 декабря 2016 г.

Программируемое реле против ПЛК на примере Siemens LOGO vs S7-200

Недавно был у меня спор с одним товарищем (монтажником) по поводу программируемых реле, их отличий от ПЛК и т.п. В общем-то закончилось всё предсказуемо, во-первых, тем, что нет строго определения "программируемого реле", поскольку понятие "контроллер" слишком широкое и включает в себя и программируемые реле тоже. Во-вторых, надо выбирать оборудование в зависимости от решаемой задачи. Нет смысла переплачивать тысячи долларов за какой-нибудь дорогой ПЛК, если можно купить дешевле, долларов за 500, равно как и нет смысла покупать программируемое реле за 10 000 рублей то, что не позволит быстро и эффективно решить задачу, которую можно решить с помощью ПЛК за 20 000 рублей.

В этой статье я хочу рассказать о некоторых нюансах при программировании наноконтроллера (программируемого реле) Siemens LOGO! Сравнивать его я буду с микроконтроллером Siemens S7-200, который стоит вдвое дороже, но при этом имеет гораздо больше функций. Контроллер S7-200 был снят с производства в Германии в конце 2012 года и формально заменён на линейку S7-1200. Однако, сравнивать LOGO! с S7-1200 не имеет смысла, поэтому сравним всё же с S7-200, к тому же в Китае их по прежнему производят, и своей актуальности они не потеряли. Я здесь не буду описывать что-то невероятное для LOGO!, например, сложные математические операции, которые запросто можно осуществить на S7-200. Остановимся на булевой алгебре, т.е. на том, что можно осуществить на языках LAD и FBD, представленных в обоих рассматриваемых контроллерах. Я не использую язык FBD с некоторых пор, поэтому примеры будут только на LAD и, дополнительно, на STL (STL или обобщённое название IL - Instruction List - аналог языка Ассемблера, только для ПЛК), который есть в S7-200.

Адреса я буду писать в формате для S7-200, а в фигурных скобках после них - те же адреса для программы для LOGO!.

Многократное присвоение

Главная проблема LOGO! - невозможность многократного присвоения значения одному и тому же элементу в разных частях программы.

Например, у нас имеется три дискретных входа: I0.1 {I1}, I0.2 {I2}, I0.3 {I3}, по которым срабатывает авария. И есть вход I0.7 {I7} для подтверждения аварии. Бит аварии храним в V0.1 {SF001}.

Напишем программу на Step-7/MicroWIN на языке STL (IL) для S7-200:

 Переведём эту программу на LAD для того же S7-200:

А теперь попытаемся изобразить нечто подобное на LOGO!


На первый взгляд проблем нет. Но мы видим явные отличия от программы для S7-200. Заключаются они в том, что у нас нет возможности создать несколько блоков с названием SF001 и для каждого из них производить операции присвоения (S) и сброса (R). Вот для S7-200 мы как раз могли сделать их все вместе, получив программу вида:

LD I0.1
O  I0.2
O  I0.3
S  V0.1, 1
LD I0.7
R  V0.1, 1

Она работала бы как мой пример для LOGO!, но нам этого как раз не нужно, нам, наоборот, нужно присваивать значения одному и тому же элементу в разных частях программы. На LOGO! мы этого сделать так просто не можем (т.е. теоретически можем, но такую программу будет невозможно нормально просматривать и редактировать), поэтому придётся изворачиваться. Для начала создадим переменные, которые будут отвечать установку бит SF001. Для I1, I2 и I3 это будут биты SF002, SF003 и SF004 соответственно.


Теперь, по идее, нужно по битам SF002, SF003 и SF004 установить бит SF001. Но и тут есть нюанс, а заключается он в том, что поскольку установленный бит SF001 сбрасывает любой из битов его устанавливающих, то LOGO! не даст вам создать такую программу.


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


Задействовав промежуточный бит M1, мы решили задачу.

Чтобы понять, насколько больше стало бы кода, напишим программу в таком виде на STL для S7-200:

Знаете, что такое "китайский код"? Это вот он самый.

Таймеры

Казалось бы, уж таймеры в программируемом реле должны быть коронной фишкой. Ну, например, есть не самый удобный способ установки бита и его сброса по таймеру в ПЛК S7-200:

Пришлось написать 8 строк кода и задействовать два таймера для простейшей, казалось бы вещи: по одному и тому же биту I0.1 устанавливать с задержкой в 1 секунду бит M0.1, по нему же с такой же задержкой сбрасывать тот же бит.

Попробуем воспользоваться стандартной функцией On-/Off-Delay...




 ...и получаем совсем не то, что хотели. Т.е. первоначально бит устанавливается с задержкой 1 секунда. Но впоследствии, если сигнал I1 пропадает (меньше, чем установленная на выключение 1 секунда), а затем снова появляется, то T001 всё равно сбросится в 0 на некоторое время, которое будет проходить между тем, как таймер на выключение досчитает, а таймер на включение ещё нет. Зачем нужен такой элемент как On-/Off-Delay - мне не понятно.

Попробуем другой способ, задействуем On-Delay (T002) и Off-Delay (T001):


Опять ничего не вышло. Дело в том, что T002 и T001 не должны быть одновременно включены, согласно нашей логике, а именно так оно и получается, поскольку Off-Delay не включается при выключении входа (с паузой), как нам надо, а просто включается вместе с включение входа, а при его выключении с паузой выключается.

Такой способ тоже ничего не даст:

 
В итоге, прекращаем заниматься ерундой и реализуем по аналогии с S7-200:
 

Короче говоря, никаких преимуществ перед S7-200 мы не увидели, а нашли лишь пару ненужных функций.

Итог: если вам надо реализовать управление контроллера безопасности (Safety Controller), управление системой загазованности или простейшей насосной станцией, то программируемое реле вполне можно использовать. Но достаточно, казалось бы, небольшого усложнения задачи, и потребуется уже нормальный ПЛК. Я бы не рекомендовал рисковать. Лучше купить китайский S7-200, чем долго и упорно мучиться с LOGO! (которые, кстати, уже несколько лет в Германии тоже не делают, а делают всё в том же Китае).

суббота, 24 декабря 2016 г.

Как запрограммировать Siemens LOGO! 8

Тут столкнулся с такой проблемой: в LOGO! версии 8 есть порт Ethernet, но нет старого-доброго порта для подключения фирменного кабеля LOGO!. На месте порта, куда раньше он втыкался, расположен порт для разъёма подключения флеш-карты Micro SD.

Попытка запрограммировать порт через интерфейс Ethernet привела к ошибке. Причём, само устройство в сети определяется.


Но дальше дело не идёт, вылазит ошибка следующего содержания:

Some network environment changes are detected. Restart LOGO!Soft Comfort to apply changes


В сети интернет были найдены предположения, что всё дело в настройках сетевой карты, мол, надо их сбросить через коммандную строку, а кто-то говорит, что всё дело в кракозябрах, которые могут находиться в строке с названием выбираемой сетевой карты. Следуя этим советам, я и переустанавливал драйвера, чтоб название сетевухи отображалось в Logo SoftComfort без кракозябр, и сбрасывал настройки неоднократно, - ничего не помогло.

Закончилось всё тем, что я просто выбрал в выпадающем меню "Interface"->"Connect throught" не Ethernet, а Dinamic DNS, ввёл туда вручную 192.168.0.1 (этот IP мне выдал поиск, когда я выбирал интерфейс "Ethernet"), и было мне счастье.
Поствил версию SoftComfort 8.2.0 вместо 8.0.0 - та же история, также только через Dynamik DNS получилось залить программу.

По умолчанию требуется пароль. Пароль: LOGO
Если пароль не подходит (программа ругается, что пароль неправильный), то возможно, что нужно обновить версию LOGO! SoftComfort. Например, такое наблюдалось с версией 8.0, пароль "LOGO" не подходил, а при установке версии 8.2 пароль подошёл. Из явных отличий версии 8.2 от 8.0 - наличие пункта меню Factory Reset (заводской сброс), что актуально для контроллеров LOGO, не имеющих собственного дисплея.

Обновления LOGO! SoftComfort по ссылке. Обновления не являются полноценными программами и устанавливается поверх предыдущей версии SoftComfort.

P. S.> Есть интересный момент: в интерфейсе для подключения можно выбирать не только Ethernet, но и кабель LOGO!, тот самый, через которые подключаются предыдущие модели. Вот только по факту такого разъёма на LOGO! 8 физически нет. Замечательная история ))

P. S. 2> Касательно заливки программы через флешку microSD. На флешку записывается откомпилированный файл проекта с расширением .bin. В Logo SoftComfort странным образом реализовано создание этого *.bin-файла. Компиляция вызывается через обычное сохранение файла (File->Save As), где надо поменять тип сохраняемого файла на бинарный - bin. Возможность сохранять в такой тип файла появляется только для программ, написанных на языке FBD, поэтому если пишите на LAD, то перед компиляция в бинарный файл нужно конвертировать проект в FBD:
Интересно, что первая попытка прошить бездисплейный Logo! таким способом не увенчалась успехом - оказалось, что при сохранении bin-файла нельзя менять стандартное имя этого файл LOGO_U_P.bin, иначе Logo! его игнорирует при включении питания и программу с него не забирает.

Как стереть абсолютно всё с ПЛК S7-200 Smart

Есть слот Micro SD в контроллерах S7-200 Smart. На эти флеш карты можно записывать  команды, например, сброса контроллера (почему его не реализовать в MicroWin Smart - непонятно).

Но сброс, действительно, нужен, например, если контроллер запоролен под завязку, т.е. запрещает вообще всё, что можно. Для сброса контроллера в таком случае нужно взять Micro SD флешку, создать на ней текстовый файл S7_JOB.S7S с текстом внутри: RESET_TO_FACTORY.

Чтобы произвести сброс, надо выключить ПЛК, вставить в него флешку, включить ПЛК, через пару секунд он начнёт моргать - значит, всё готово, можно выключать, флешку вынимать, контроллер к использованию готов.

четверг, 8 декабря 2016 г.

Заказные номера и размеры панелей Siemens Smart Line

Заказные номера

Smart 700   v1: 6AV6 648-0AC11-3AX0

Smart 700IE v2: 6AV6 648-0BC11-3AX0

Smart 700IE v3: 6AV6 648-0CC11-3AX0

Smart 700IE v4: 6AV6 648-0DC11-3AX0

 

Smart 1000   v1: 6AV6 648-0AE11-3AX0

Smart 1000IE v2: 6AV6 648-0BE11-3AX0

Smart 1000IE v3: 6AV6 648-0CE11-3AX0

Smart 1000IE v4: 6AV6 648-0DE11-3AX0

 

Габаритные размеры

Размеры панелей v3 (из инструкции): 

Размеры панелей v1 и v2 (мои измерения):

7":

габариты: 213 х 158.5

задняя часть: 197 х 136.8

в т.ч. верхняя выступающая часть: 197 х 109.8

дисплей: 155.5 х 88

10":

габариты: ??? х 221.6

задняя часть: 257.8 х 199.7

в т.ч. верхняя выступающая часть: 257.8 х 178.1

дисплей: 223 х 133.2

Характеристики панелей Smart v3