пятница, 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 x 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










понедельник, 18 февраля 2019 г.

Проблемы совместимости S7-200 и китайских PLC: глюк с оператором FOR

Обнаружен ещё один дефект китайских контроллеров. О первом дефекте, который был обнаружен касательно оператора JMP, можно прочитать тут:
 Проблемы совместимости S7-200 и китайских PLC: глюк с оператором JMP
Полный список косяков китайских поделок, пародирующих Siemens S7-200 тут:
Китайские поделки на тему Siemens S7-200

Напомню, что первый дефект проявил себя на китайских поделках GIPENG GF200 и Amsamotion AMX-200CN, но не проявился на Shenjuye (Lollette) LE-200.
Новый дефект касается оператора FOR и также проявился на контроллерах GIPENG, но не проявился на Shenjuye. К сожалению, в настоящее время контроллеров Amsamotion нет в моём распоряжении, но учитывая прошлый опыт, с большой долей вероятности можно сказать, что глюк проявится и на нём.

Почитаем официальное описание оператора FOR в инструкции к Step-7 Micro/WIN:

The FOR (FOR) instruction executes the instructions between the FOR and the NEXT. You specify the index value or current loop count (INDX), the starting value (INIT), and the ending value (FINAL).

If the starting value is greater than the final value, the loop is not executed. After each execution of the instructions between the FOR and the NEXT instruction, the INDX value is incremented and the result is compared to the final value. If the INDX is greater than the final value, the loop is terminated.


Как видим, в инструкции чётко сказано, что если стартовое значение больше конечного значения, то цикл не выполняется. В частности, это означает, что если  стартовое значение изначально выше конечного, то цикл не должен выполняться ни одного раза.

Проверим как это выполняется на примере функции, осуществляющей расчёт среднего квадратического значения за 1 секунду времени. В программе имеется массив на 10 чисел, представляющих собой исходные значения измеряемой величины, возведённые в квадрат. Массив реализован в виде десяти 4-байтных ячеек, идущих подряд в области данных: от VD6018 до VD6054. Каждые 100мс в массив добавляется новое число, которое записывается вместо самого старого элемента массива. Т.е. текущий индекс массива просто меняется от 0 до 9 (на 1) при каждом добавлении элемента, а после 9 следующим значением индекса будет 0. В соответствии с индексом высчитывается адрес в памяти для записи нового элемента. Т.е. к начальному адресу (&VB6018) прибавляется 4 байта столько раз, сколько соответствует индексу. Если индекс равен нулю, то ничего прибавлять к адресу &VB6018 не нужно, т.к. это и есть адрес нулевого элемента массива. Вот так это выглядит на Siemens S7-200:


Итак, на скриншоте запечатлён момент, когда значение индекса (VW6016) равно нулю. Цикл, прибавляющий к адресу первого элемента нужное количество байт, работает, начиная с 1. Соответственно, при вызове цикла с конечным значением 0, цикл не должен выполниться ни разу, т.к. конечное значение получается сразу меньше начального значения. Это и видно на скриншоте - строчка "+D     +4, LD12" не выполнилась.

И вот, как оказалось, данный алгоритм некорректно работает на контроллерах GIPENG, поскольку значение в ячейке VD6018 не обновлялось. Оказалось, что цикл FOR всегда выполнялся хотя бы один раз независимо от того, выполнялось ли условие, что стартовое значение должно быть меньше или равно конечному. Вот как это выглядит:


Ну, конечно, не является проблемой обойти эту проблему, просто игнорируя цикл для такого случая (т.е. выполняя JMP перед FOR). Для этого у меня и был написан закомментированный фрагмент с "JMP 5":


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

четверг, 31 января 2019 г.

Подключение привода Danfoss AME 30 переменного тока

Возникла необходимость подключения электропривода Danfoss AME30 на клапане подачи воды. Внезапно оказалось, что мотор привода - не постоянного, а переменного тока 24 В. Управлять клапаном необходимо было аналоговым сигналом с ПЛК: 0..10 В.
Вот такая схема:



Как видим, питание мотора 24VAC подаётся на клеммы SP (фаза) и SN (нейтраль), а сигнал управления +0..10VDC - на клемму Y. Спрашивается, куда подавать минусовой сигнал постоянного тока управления? Если его просто не подавать, то управление работать не будет.

Как выяснилось, минус нужно объединить с нейтралью блока питания переменного тока и подать их вместе на клемму SN.