WB-M1W2 1-Wire to Modbus Temperature Measurement Module: различия между версиями

Материал из Wiren Board
м
(Отметить эту версию для перевода)
Строка 2: Строка 2:
<translate>
<translate>


<!--T:1-->
[[Файл:WB-M1W2.jpg|мини|Модуль WB-M1W2]]
[[Файл:WB-M1W2.jpg|мини|Модуль WB-M1W2]]
[[Файл:WB-M1W2_new.png|мини|Модуль WB-M1W2, версия 2]]
[[Файл:WB-M1W2_new.png|мини|Модуль WB-M1W2, версия 2]]


<!--T:2-->
{{DISPLAYTITLE:WB-M1W2 Преобразователь для термометров 1-Wire}}{{#vardefine:ProductFullName1|Преобразователь для термометров 1-Wire WB-M1W2}} {{#vardefine:FileName1|WB_M1W2}} {{#vardefine:ProductName1|WB-M1W2}}  
{{DISPLAYTITLE:WB-M1W2 Преобразователь для термометров 1-Wire}}{{#vardefine:ProductFullName1|Преобразователь для термометров 1-Wire WB-M1W2}} {{#vardefine:FileName1|WB_M1W2}} {{#vardefine:ProductName1|WB-M1W2}}  
'''[https://wirenboard.com/ru/product/WB-M1W2/ Купить в интернет-магазине]'''
'''[https://wirenboard.com/ru/product/WB-M1W2/ Купить в интернет-магазине]'''


<!--T:3-->
WB-M1W2 - компактный преобразователь, предназначенный для опроса '''двух''' цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485.
WB-M1W2 - компактный преобразователь, предназначенный для опроса '''двух''' цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485.


== Входы ==
== Входы == <!--T:4-->
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B.
Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B.


<!--T:5-->
'''Версия 1:''' Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire.
'''Версия 1:''' Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire.


   
   
<!--T:6-->
'''Версия 2:''' Два внешних датчика температуры DS18B20 подключаются по активной схеме питания, GND датчиков подключается к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire, напряжение питания датчиков подается с вывода 5V out. В версии 2 имеется дополнительная защита входов 1-Wire.
'''Версия 2:''' Два внешних датчика температуры DS18B20 подключаются по активной схеме питания, GND датчиков подключается к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire, напряжение питания датчиков подается с вывода 5V out. В версии 2 имеется дополнительная защита входов 1-Wire.


<!--T:7-->
Также в устройстве присутствует внутренний датчик температуры (NTC-термистор).
Также в устройстве присутствует внутренний датчик температуры (NTC-термистор).


<!--T:8-->
В версии прошивки 4.0.0 и выше возможно также конфигурирование входов 1-Wire модуля как дискретных или счётных входов.
В версии прошивки 4.0.0 и выше возможно также конфигурирование входов 1-Wire модуля как дискретных или счётных входов.


==Монтаж==
==Монтаж== <!--T:9-->
[[Файл:WB-M1W2+DS18B20.png|650px|thumb|center|Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)]]
[[Файл:WB-M1W2+DS18B20.png|650px|thumb|center|Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)]]
Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров.
Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров.


== Технические характеристики ==
== Технические характеристики == <!--T:10-->
{| class="wikitable"
{| class="wikitable"
! style="text-align: center;" | Параметр
! style="text-align: center;" | Параметр
Строка 102: Строка 109:
|}
|}


== Дополнительные Функции==
== Дополнительные Функции== <!--T:11-->


<!--T:12-->
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).
'''Смена адреса''' производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).


<!--T:13-->
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель.
По адресу 200 лежит '''сигнатура''' длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель.
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.   
Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6.   
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.
Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.


== Карты регистров ==
== Карты регистров == <!--T:14-->


<!--T:15-->
{| class="wikitable"
{| class="wikitable"
! rowspan="2" |Регистр/ адрес
! rowspan="2" |Регистр/ адрес
Строка 172: Строка 182:




<!--T:16-->
|104-105 || input || R || || 32-bit unsigned int  
|104-105 || input || R || || 32-bit unsigned int  
|| Время работы устройства (uptime counter) в секундах  
|| Время работы устройства (uptime counter) в секундах  
Строка 179: Строка 190:




<!--T:17-->
|110
|110
|holding
|holding
Строка 343: Строка 355:
|}
|}


==Сигнатура устройства ==
==Сигнатура устройства == <!--T:18-->


<!--T:19-->
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:
По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:


<!--T:20-->
{| class="wikitable"
{| class="wikitable"
! style="font-weight: bold;" | Модуль
! style="font-weight: bold;" | Модуль
Строка 355: Строка 369:
|}
|}


<!--T:21-->
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00.  
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.
Начиная с регистра 220 записана дата сборки прошивки, в формате "число'''x00'''время'''x00'''" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.


== Работа преобразователя с контроллером Wiren Board ==
== Работа преобразователя с контроллером Wiren Board == <!--T:22-->
Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2.
Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2.


<!--T:23-->
Описание каналов шаблона
Описание каналов шаблона
{| class="wikitable"
{| class="wikitable"
Строка 380: Строка 396:
|}
|}


<!--T:24-->
С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера.
С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера.


<!--T:25-->
Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI":  
Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI":  


<!--T:26-->
[[File:M1w2 as discrete inputs example.png|400px|thumb|center|Пример настройки WB-M1W2 на дискретные входы.]]
[[File:M1w2 as discrete inputs example.png|400px|thumb|center|Пример настройки WB-M1W2 на дискретные входы.]]


<!--T:27-->
Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше):
Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше):
{| class="wikitable"
{| class="wikitable"
Строка 404: Строка 424:
|}
|}


== Управление модулем из командной строки ==
== Управление модулем из командной строки == <!--T:28-->
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].
Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице [[Modbus-client]]. Доступ к командной строке описан в статье [[SSH]].


=== Пример чтения регистров ===
=== Пример чтения регистров === <!--T:29-->
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:
Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:


<!--T:30-->
<syntaxhighlight lang="bash">echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
<syntaxhighlight lang="bash">echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'` </syntaxhighlight>


<!--T:31-->
В результате выполнения команды получаем строку, например '''WBM1W2'''. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1.
В результате выполнения команды получаем строку, например '''WBM1W2'''. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1.


== Обновление прошивки устройства ==
== Обновление прошивки устройства == <!--T:32-->
Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье [[WB-MCU-Flasher|Загрузка прошивок на устройства Wiren Board]]. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье [[Firmware_Changelog]].
Начиная с новых версий микропрограмм устройства поддерживается функционал обновления прошивки (микропрограммы) по протоколу Modbus. Это дает возможность расширять функциональные возможности устройств и устранять ошибки в микропрограммном обеспечении непосредственно на месте монтажа. Подробнее о перепрошивке устройств рассказано в статье [[WB-MCU-Flasher|Загрузка прошивок на устройства Wiren Board]]. Список версий прошивок, поддерживающих обновление, а также устройств, для которых эта функция реализована, можно найти в статье [[Firmware_Changelog]].


==Изображения и чертежи устройства==
==Изображения и чертежи устройства== <!--T:33-->
{{Wbincludes:WBPictures|1}}
{{Wbincludes:WBPictures|1}}


</translate>
</translate>

Версия 13:18, 19 июля 2019

Другие языки:
Модуль WB-M1W2
Модуль WB-M1W2, версия 2


Купить в интернет-магазине

WB-M1W2 - компактный преобразователь, предназначенный для опроса двух цифровых термометров 1-Wire (DS18B20) по протоколу Modbus RTU по шине RS-485.

Входы

Питание модуля подается на винтовые зажимы V+ и GND, линия RS-485 подключается к входам A и B.

Версия 1: Два внешних датчика температуры DS18B20 подключаются по паразитной схеме питания, когда выводы +5В и GND объединены и подключены к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire.


Версия 2: Два внешних датчика температуры DS18B20 подключаются по активной схеме питания, GND датчиков подключается к клемме GND, вывод данных подключается к зажиму 1 или 2 1-Wire, напряжение питания датчиков подается с вывода 5V out. В версии 2 имеется дополнительная защита входов 1-Wire.

Также в устройстве присутствует внутренний датчик температуры (NTC-термистор).

В версии прошивки 4.0.0 и выше возможно также конфигурирование входов 1-Wire модуля как дискретных или счётных входов.

Монтаж

Подключение датчиков DS18B20 к модулям WB-M1W2 версии один (слева) и версии 2 (справа)

Преобразователь устанавливается в кабель-каналы, короба, распаечные коробки. Рекомендуемая длина линий от преобразователя до выносных датчиков 1-Wire - не более 30 метров.

Технические характеристики

Параметр Значение
Питание
Напряжение питания 9 — 24 В постоянного тока
Потребляемая мощность

0.1 Вт

Клеммники и сечение проводов
Рекомендуемое сечение провода с НШВИ, мм2 0,75 — 1
Длина стандартной втулки НШВИ, мм 8
Момент затяжки винтов, Н∙м 0,2
Датчики
Внешние датчики Возможность подключения двух цифровых датчиков температуры DS18B20.
Внутренний датчик Встроенный NTC-термистор
Входы (подключаются вместо внешних датчиков)
Количество дискретных входов 2
Тип входов "Сухой контакт", неизолированные
Напряжение в разомкнутом состоянии 3.3 V
Управление
Интерфейс управления RS-485
Изоляция интерфейса Неизолированный
Протокол обмена данными Modbus RTU, адрес задается программно, заводские настройки указаны на наклейке
Параметры интерфейса RS-485

скорость 9600 бит/с; данные — 8 бит; четность N; стоп-биты 2; Начиная с версии прошивки 3.1.0 параметры интерфейсы могут быть настроены программно:

Габариты
Габариты
  • 40x15x11 мм;
Условия эксплуатации
Температура воздуха -40°С до +80°С
Относительная влажность воздуха до 98%,без конденсата влаги

Дополнительные Функции

Смена адреса производится широковещательный (slave_id 0) командой записи (WRITE_SINGLE_REGISTER) в holding register с адресом 128 (0x80).

По адресу 200 лежит сигнатура длинной 6 байт. Сигнатура уникальна для каждой модели устройства и позволяет идентифицировать модель. Для получения сигнатуры нужно выполнить READ_HOLDING_REGISTERS адрес 200 длина 6. Запись в эту область памяти не поддерживается, при попытки записи в недопустимое место возвращается ошибка 3.

Карты регистров

Регистр/ адрес Тип Чтение/ запись Значение по умолчанию Формат Назначение Версии

прошивки

6 input R 0x7FFF °C × 16 (signed) Температура с встроенного датчика
7 input R 0x7FFF °C × 16 (signed) Температура с первого внешнего датчика 1-Wire
8 input R 0x7FFF °C × 16 (signed) Температура с второго внешнего датчика 1-Wire
20 input R 0 °C × 16 (signed) Температура с первого внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 16). начиная с прошивки 4.6.0
21 input R 0 °C × 16 (signed) Температура с второго внешнего датчика 1-Wire. При ошибке опроса датчика сохраняет предыдущее валидное значение (статус датчика читать из discrete регистра 17).
99 holding RW 16 1 = 0.0625C (доступно с версии прошивки 3.10.0)

Фильтр подозрительных значений для датчиков 1-Wire (85.000C, 127.937C). Значения отбрасываются, если предыдущее отличается от подозрительного больше, чем на значение регистра*0.0625C. Запишите 0, чтобы отключить фильтр.

3.10.0
104-105 input R 32-bit unsigned int Время работы устройства (uptime counter) в секундах
110 holding RW 96 baud rate / 100 скорость порта RS-485, делённая на 100. Допустимые скорости: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 >3.1.0
111 holding RW 0 настройка бита чётности порта RS-485. Допустимые значения: 0 - нет бита чётности (none), 1 - нечётный (odd), 2 - чётный (even)
112 holding RW 2 количество стоп-битов порта RS-485. Допустимые значения: 1, 2
120 (0x78) holding RW 0 отличное от 0 запись в регистр вызывает перезагрузку модуля без сохранения состояния
121 (0x79) input R - mV текущее напряжение питания модуля
128 (0x80) holding RW 1 Modbus-адрес устройства
129 (0x81) holding RW 0 0 или 1 Переход в режим загрузчика начиная с прошивки 4.5.0
200-206 input R см. Сигнатура устройства сигнатура
220-241 input R __date__ __time__ дата сборки прошивки
245 holding RW 216 °C × 100 (signed) Компенсация самонагрева встроенного датчика температуры.

Значение регистра вычитается из температуры, измеренной встроенным датчиком (регистр 6)

250-269 input R строка, null-terminated версия прошивки
270-271 input R 32-bit unsigned int уникальный идентификатор (S/N)
275 holding RW 0 0 или 1 Режим входа №1: 0 - 1-wire, 1 - дискретный вход >=4.0.0
276 holding RW 0 0 или 1 Режим входа №2: 0 - 1-wire, 1 - дискретный вход
277 input R 16-bit unsigned int Счетчик срабатываний для входа №1
278 input R 16-bit unsigned int Счетчик срабатываний для входа №2
0 discrete R 0 или 1 Текущее состояние входа №1: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
1 discrete R 0 или 1 Текущее состояние входа №2: 0 - разомкнут, 1 - замкнут на GND. Если для входа выбран режим 1-wire, значение всегда равно 0.
16 discrete R 0 или 1 Статус опроса датчика 1-Wire входа №1: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается начиная с прошивки 4.6.0
17 discrete R 0 или 1 Статус опроса датчика 1-Wire входа №2: 0 - датчик не подключен, 1 - датчик подключен и корректно опрашивается

Сигнатура устройства

По адресу 200 лежит сигнатура модуля длиной 6 байт. Сигнатура уникальна для каждой модели устройств Wiren Board и позволяет идентифицировать модель по Modbus:

Модуль Сигнатура
WB-M1W2 WBMIR'0x00'

Для получения сигнатуры нужно выполнить команду READ_HOLDING_REGISTERS по адресу 200 (длина 6 регистров). Запись в эту область памяти не поддерживается, при попытке записи в недопустимое место возвращается ошибка 3. Пустые места в тексте сигнатуры забиваются значением 0x00. Начиная с регистра 220 записана дата сборки прошивки, в формате "числоx00времяx00" в виде строки (пример: 'Jan 27 2017 17:01:13'). Длина записи — 21 регистр.

Работа преобразователя с контроллером Wiren Board

Для преобразователя WB-M1W2 в контроллере Wiren Board предусмотрен соответствующий шаблон WB-M1W2.

Описание каналов шаблона

Название канала Назначение
Input Voltage Напряжение питания модуля
Internal Temperature Sensor Температура внутреннего/внешнего цифрового датчика. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
External Sensor 1 Температура внешнего цифрового датчика, подключенного к порту 1. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
External Sensor 2 Температура внешнего цифрового датчика, подключенного к порту 2. Если датчик отсутствует или неисправен, его название выделяется красным цветом.
Serial NO Серийный номер модуля, может потребоваться при обращении в техподдержку.

С версии прошивки 4.0.0 преобразователь WB-M1W2 позволяет конфигурировать каждый из двух входов как дискретный вход. Режим входа задаётся в регистрах 275-276 (см. таблицу выше). В контроллерах Wiren Board этот режим настраивается через Setup-секцию драйвера.

Для отображения регистров, соответствующих дискретным входам, нужно выбрать шаблон "WB-M1W2 DI":

Пример настройки WB-M1W2 на дискретные входы.

Каналы дискретных входов (не забудьте перевести входы в режим дискретных, как написано выше):

Название канала Назначение
Discrete Input 1 Состояние входа 1. 0 - разомкнут, 1 - замкнут на GND
Discrete Input 2 Состояние входа 2. 0 - разомкнут, 1 - замкнут на GND
Counter 1 Счётчик срабатываний входа 1
Counter 2 Счётчик срабатываний входа 2

Управление модулем из командной строки

Программное обеспечение контроллера Wiren Board включает в себя утилиту modbus_client для работы с устройствами, подключенными к выходам RS-485, по протоколу Modbus, подробное описание команды находится на странице Modbus-client. Доступ к командной строке описан в статье SSH.

Пример чтения регистров

Проверим, верно ли, что мы подключились именно к модулю нужного типа. (Модуль wb-mqtt-serial должен быть предварительно остановлен). По адресу 200 хранится уникальная сигнатура длиной в 6 регистров. Прочтем 6 регистров, начиная с адреса 200, и преобразуем полученный ответ из шестнадцатеричных цифр в символьную строку:

echo  -e `modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 \
-a1 -t0x03 -r200 -c 6 | \
grep Data | sed -e 's/0x00/\\\x/g' -e 's/Data://' -e 's/\s//g'`

В результате выполнения команды получаем строку, например WBM1W2. В этом примере модуль WB-M1W2 имеет Modbus-адрес 1.

Обновление прошивки устройства

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

Изображения и чертежи устройства


По ссылкам ниже вы можете скачать изображения и чертежи устройства WB-M1W2.

Corel Draw 2018: WB_M1W2.cdr.zip

Corel Draw PDF: WB_M1W2.cdr.pdf

Autocad 2013 DXF: WB_M1W2.dxf.zip

Autocad PDF: WB_M1W2.pdf