вторник, 3 декабря 2019 г.

Vitotronic - ошибка адресации при работе в каскаде

Значит, история такая: котельная, 2 дизельных котла с автоматическими горелками, управляют включением/выключением с контроллером для постоянной температуры подачи Vitotronic 100 GC1 и с погодозависимым каскадным контроллером Vitotronic 300-K.

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



Интерфейсное соединения этих двух контроллеров предполагает задание адресов


В общем, при указании адреса в виде какого-то номера, когда вроде как всё настроено, контроллеры друг друга видят, но по факту постоянно возникает сообщение "Ошибка связи LON". Оказалось, что надо не задавать номер числовой, а щёлкать адреса дальше и будет возможность вместо числового номера выбрать Vitogate 300. И тогда ошибка перестала возникать.

пятница, 22 ноября 2019 г.

Как открыть запароленные блоки в программе для SINUMERIK

Итак, ранее я немного поломал библиотеки datamanagers.dll для Step-7 Microwin и Step-7 Microwin Smart, позволяющие снимать пароль с функциональных блоков и блоков данных. Но в линейке продуктов Step-7 Microwin есть ещё одна программа, сделанная на той же основе, называется она PLC Programming Tool, и предназначена она для программирования контроллеров SINUMERIK, применяемых в ЧПУ. В частности Sinumerik 828D, пароль для функциональных блоков которого мне надо было взломать, используется для токарных и фрезерных станков.



Итак, пошаговая инструкция:

Что нам понадобится?


1. PLC Programming Tool. Я использовал версию 3.3.4.2

2.  OllyDBG. Я использовал 1.10, но можно любую версию.

Порядок действий


1. Запускаем PLC Programming Tool

Правой кнопкой мыши по запороленному блоку, Properties..., откроется окно свойств блока, переходим на вкладку Protection


Галочку Protection remains active for this POU лучше снять, иначе после выхода из программы блоки потом снова будут запоролены.

2. Запускаем OllyDBG

Выбираем в меню File->Attach



3. В появившемся окне "Select process to attach" ищем нашу программу progtool.exe. Нажимаем кнопку Attach.


4. В появившемся окне щёлкаем правой кнопкой кнопкой мыши и выбираем Search for->Name in all modules.



Кстати, почему-то этой функции я не нашёл в OllyDBG 2. Но, может быть, просто плохо искал. Ну, в любом случае, можно обойтись и без поиска во всех модулях, поскольку название модуля известно. Т.е. можно сделать так: в верхнем меню выбрать View->Executable modules, в появившемся окне выбрать USER32.dll и открыть его, а далее уже в нем правой кнопкой мыши и Search for->Names (так оно называется в OllyDBG 2.01).

5. В появившемся окне All names ищем MessageBoxA. Там всё расположено по алфавиту, но название модуля, предшествующее имени, в алфавитном упорядочивании не участвует, поэтому может показаться, что перечень идёт вразнобой, хотя это не так. В итоге MessageBoxA соседствует с именами USER32.MessageBoxA. Надо не перепутать, потому что нужен просто MessageBoxA.
Выбираем его и нажимаем Enter (или в выпадающем меню - Follow in Disassembler)


6. Откроется дизассемблированный модуль USER32 и в нём будет выделена строчка MOV EDI, EDI. На этой строчке нужно сделать точку останова при выполнении программы. Для этого нажимаем F2 (или в выпадающем меню - Breakpoint->Toggle)

7. Когда мы вначале сделали Attach, то программа PLC Programming Tool автоматически встала на паузу. Нажимаем в OllyDBG кнопку Run (F9)


8. В открытом ранее в PLC Programming Tool окне для ввода пароля вводим любой пароль, нажимаем OK. После этого у нас автоматически переключат на OllyDBG, а PLC Programming Tool окажется остановленной на выполнении строки, где мы поставили точку останова.

9. Обращаем внимание на окно справа внизу


В это окне колёсиком мыши крутим вниз.

Вскоре я натыкаюсь вот на такую строку:


"4444" - это неправильный пароль, который я только что ввёл. Но мы крутим дальше и ещё несколько раз встречаем этот же самый неправильный пароль, но мы крутим еще дальше и видим это:


Т.е. тут опять уже знакомое "4444", но над ним есть и другая комбинация - "1234". В данном случае 1234 - это и был правильный пароль.

Всё!

пятница, 29 марта 2019 г.

Заказные номера S7-200

Цены взяты с Aliexpress.
Указаны самые низкие цены, найденные на момент публикации.
На CPU указаны цены только на оригиналы Siemens S7-200 и S7-200CN (без учёта скидок). Как я уже ранее говорил, покупать неоригинальные CPU S7-200 от Gipeng, Amsamotion, Lollette и других китайских производителей не стоит.
На модули указаны две цены: красная - оригинал, синяя - цена китайской поделки а-ля Amsamotion. Еще зелёным цветом выделены модели xxx22, которые тоже есть на aliexpress, это преимущественно б/у (для них стоит пометка USED), но можно дешевле других моделей иногда найти.

Напомню, как правильно искать на Aliexpress товары Siemens S7-200 по заказному номеру. 

Последняя цифра номера может быть 0 или 8: 
- для оригиналов Siemens 0 - это Германия (S7-200), 8 - это Китай (S7-200CN)
- для неоригиналов 0 или 8 - это и так, и так может быть (например, у Gipeng и Amsamotion - 0, у Lollette - 8). 

Также в заказном номере первые 4 символа (6ES7) могут быть написаны как вместе с остальным кодом, так и отделены от него пробелом. 

Помимо этого число 23 в номере может быть заменено на 22 или 21 (контроллеры с более старыми версиями прошивок, но для большинства задач совместимы). 

Т.е. всего возможно 6 вариантов заказного номера на один и тот же по сути товар, например, CPU224 DC/DC/DC:
1) 6ES7 214-1AD23-0XB0
2) 6ES7214-1AD23-0XB0
3) 6ES7 214-1AD22-0XB0
4) 6ES7214-1AD22-0XB0 
5) 6ES7 214-1AD23-0XB8
6) 6ES7214-1AD23-0XB8

Поскольку в Германии S7-200 уже не делают, то новый оригинальный S7-200, по идее, нужно искать с последней цифрой 8 (S7-200CN), но это именно новый (не б/у)


CPU
1
CPU221
24V
AC/DC/RLY. 6 DI, 4 DQ
PROGRAM/DATA MEMORY: 4 KB
DATA MEMORY: 2 KB
Без возможности подключения модулей расширения
6ES7 211-0AA23-0XB0
6ES7 211-0AA23-0XB8
$ 160
2
CPU221
230V
AC/DC/RLY. 6 DI, 4 DQ
PROGRAM/DATA MEMORY: 4 KB
DATA MEMORY: 2 KB
6ES7 211-0BA23-0XB0
6ES7 211-0BA23-0XB8
$ 160
$ 103 USED
3
CPU222
24V
DC/DC/DC. 8 DI, 6 DQ
PROGRAM/DATA MEMORY: 4 KB
DATA MEMORY: 2 KB
6ES7 212-1AB23-0XB0
6ES7 212-1AB23-0XB8
$ 130
4
CPU222
230V
AC/DC/RLY. 8 DI, 6 DQ
PROGRAM MEMORY: 4 KB
DATA MEMORY: 2 KB
6ES7 212-1BB23-0XB0
6ES7 212-1BB23-0XB8
$ 100
 $ 88 USED
5
CPU224
24V
DC/DC/DC. 14 DI, 10 DQ
PROGRAM MEMORY: 8/12 KB
DATA MEMORY: 8 KB
6ES7 214-1AD23-0XB0
6ES7 214-1AD23-0XB8
$ 170
$ 165 USED
6
CPU224
230V
AC/DC/RLY. 14 DI, 10 DQ
PROGRAM MEMORY: 8/12 KB
DATA MEMORY: 8 KB
6ES7 214-1BD23-0XB0
6ES7 214-1BD23-0XB8
$ 170
7
CPU224XP
24V
DC/DC/DC. 14 DI, 10 DQ, 2xPPI
PROGRAM MEMORY: 12/16 KB
DATA MEMORY: 10 KB
6ES7 214-2AD23-0XB0
6ES7 214-2AD23-0XB8
$ 300
8
CPU224XP
230V
AC/DC/RLY. 14 DI, 10 DQ, 2xPPI
PROGRAM MEMORY: 12/16 KB
DATA MEMORY: 10 KB
6ES7 214-2BD23-0XB0
6ES7 214-2BD23-0XB8
$ 280
9
CPU226
24V
DC/DC/DC. 24 DI, 16 DQ, 2xPPI
PROGRAM MEMORY: 16/24 KB
DATA MEMORY: 10 KB
6ES7 216-2AD23-0XB0
6ES7 216-2AD23-0XB8
$ 240
$ 307
10
CPU226
230V
AC/DC/RLY. 24 DI, 16 DQ, 2xPPI
PROGRAM MEMORY: 16/24 KB
DATA MEMORY: 10 KB
6ES7 216-2BD23-0XB0
6ES7 216-2BD23-0XB8
$ 240
$ 186 USED
 МОДУЛИ РАСШИРЕНИЯ
ДИСКРЕТНЫЕ
модули ввода
11
EM221
DI 8 x 24 V DC
$ 78
6ES7 221-1BF22-0XA0
6ES7 221-1BF22-0XA8
$ 51
12
EM221
DI 16 x 24 V DC
$ 105
6ES7 221-1BH22-0XA0
6ES7 221-1BH22-0XA8
$ 70
13
EM221
DI 8 x RLY
$ 245
6ES7 221-1EF22-0XA0
модули вывода
14
EM222
DQ 4 x 24 V DC Транз. (5 A)
$ 165
6ES7 222-1BD22-0XA0
15
EM222
DQ 4 x RLY (10 A)
$ 212
6ES7 222-1HD22-0XA0
16
EM222
DQ 8 x 24 V DC Транз. (0.75 A)
$ 100
6ES7 222-1BF22-0XA0
6ES7 222-1BF22-0XA8
$ 55
17
EM222
DQ 8 230 V AC Транз. (0.5 A)
$ 212
6ES7 222-1EF22-0XA0
$ 83
18
EM222
DQ 8 x RLY (2 A)
$ 80
6ES7 222-1HF22-0XA0
6ES7 222-1HF22-0XA8
$ 65
18a
EM222
DQ 16 x RLY (2 A)
$ 95
6ES7222-1HH22-0XA0
модули ввода/вывода
17
EM223
DI 4 x 24 V DC / DQ 4 x 24 V DC Транз. (0.75 A)
$ 75
6ES7 223-1BF22-0XA0
6ES7 223-1BF22-0XA8
$ 54
18
EM223
DI 4 x 24 V DC / DQ 4 x RLY (2 A)
$ 68
6ES7 223-1HF22-0XA0
6ES7 223-1HF22-0XA8
$ 60
19
EM223
DI 8 x 24 V DC / DQ 8 x 24 V DC Транз. (0.75 A)
$ 125
6ES7 223-1BH22-0XA0
6ES7 223-1BH22-0XA8
$ 42
20
EM223
DI 8 x 24 V DC / DQ 8 x RLY (2 A)
$ 115
6ES7 223-1PH22-0XA0
6ES7 223-1PH22-0XA8
$ 42
21
EM223
DI 16 x 24 V DC / DQ 16 x 24 V DC Транз. (0.75 A)
$ 173
6ES7 223-1BL22-0XA0
6ES7 223-1BL22-0XA8
$ 110
22
EM223
DI 16 x 24 V DC / DQ 16 x RLY (2 A)
$ 220
6ES7 223-1PL22-0XA0
6ES7 223-1PL22-0XA8
$ 74
23
EM223
DI 32 x 24 V DC / DQ 32 x 24 V DC Транз. (0.75 A)
$ 308
6ES7 223-1BM22-0XA0
6ES7 223-1BM22-0XA8
24
EM223
DI 32 x 24 V DC / DQ 32 x RLY (2 A)
$ 383
6ES7 223-1PM22-0XA0
6ES7 223-1PM22-0XA8




АНАЛОГОВЫЕ
модули ввода
25
 EM231
4 AI
 0...10V,0...5V, +/-5V, +/-2.5V, OR 0/4-20 MA 11 BIT + SIGN BIT (12 BIT ADC)
Настраивается диапазон каждого канала в отдельности
$ 130
$ 70
6ES7 231-0HC22-0XA0
6ES7 231-0HC22-0XA8
$ 95
26
EM231
8 AI
 0...10V,0...5V, +/-5V, +/-2.5V, OR 0/4-20 MA 11 BIT + SIGN BIT (12 BIT ADC)
Настраивается диапазон [мА] только 6 и 7 канала
$ 255
6ES7 231-0HF22-0XA0
6ES7 231-0HF22-0XA8
$ 100
27
EM231
2 x AI RTD
$ 190
6ES7 231-7PB22-0XA0
6ES7 231-7PB22-0XA8
$ 115
28
EM231
4 x AI RTD
$ 278
6ES7 231-7PC22-0XA0
6ES7 231-7PC22-0XA8
$ 120
29
EM231
4 x AI TC
$ 155
6ES7 231-7PD22-0XA0
6ES7 231-7PD22-0XA8
$ 102
30
EM231
8 x AI TC
$ 240
6ES7 231-7PF22-0XA0
$ 160
модули вывода
31
EM232
2 AO
+/-10V, 12 BIT RESOLUTION,
OR 4-20 MA, 11 BIT RESOLUTION
$ 97
6ES7 232-0HB22-0XA0
6ES7 232-0HB22-0XA8
$ 82
32
EM232
4 AO
+/-10V, 12 BIT RESOLUTION,
OR 4-20 MA, 11 BIT RESOLUTION
$ 278
6ES7 232-0HD22-0XA0
6ES7 232-0HD22-0XA8
$ 84
33
EM235
5 AO
4 дифференциальных входа, 0…50/ 0…100/0…500 мВ; 0…1/ 0…5/ 0…10 В; ±25/ ±50/ ±100/±250/ ±500 мВ, ±1/ ±2.5/ ±5/ ±10 В;0…20 мА.
1 аналоговый выход ±10 В, 0…20 мА
Настраивается общий диапазон для всех каналов AI
$ 138
6ES7 235-0KD22-0XA0
6ES7 235-0KD22-0XA8
$ 75
модуль позиционирования
34
EM253
DI/DO 200 kHz
$ 440
6ES7 253-1AA22-0XA0

модуль весоизмерения
35
Siwarex MS
$ 330
7MH4 930-0AA01
коммуникационные модули
36
CP 243-1 
Ethernet
$ 455
6GK7 243-1EX01-0XE0
37
CP 243-2
AS-Interface (MASTER)
6GK7 243-2AX01-0XA0
38
EM 241
Аналоговый модем для PPI и Modbus
6ES7 241-1AA22-0XA0
39
EM 277
Profibus DP (SLAVE)
$ 210
6ES7 277-0AA22-0XA0
 БЛОК ПИТАНИЯ
40

 24 V DC, 3.5 A
6EP1 332-1SH31