Главная   Downloads   Разное  
FAQ     Поиск   Регистрация   Вход 
Текущее время: Чт мар 28, 2024 14:22

Часовой пояс: UTC + 3 часа (Russia: MSK)




Начать новую тему Ответить на тему  [ 12 сообщений ] 
Автор Сообщение
 Заголовок сообщения: Ввести переменную
СообщениеДобавлено: Вт мар 27, 2007 15:12 
Не в сети

Регистрация: Вт мар 27, 2007 15:03
Сообщения: 2
Подскажите пожалуста как и с помощью каких меню (если это вообще возможно) можно ввести переменную.

Смысл такой есть 16 Set-ов c адресами 3200.00 - 3200.15

Мне бы хотелось ввести переменную Х и изменять ее соответсвенно от 00 до 15. Каким образом это можно сделать чтобы не вставлять 16 сетов, а использовать только один.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт мар 27, 2007 19:44 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
открываешь в программере "Watch Window" записываешь туда слово с адресом 3200, по двойному щелчку откроется окно с предложением ввести новое значение, нажать на кнопку "Binary>>" число будет представлено по битам. далее нужно прочитать подсказку внизу этого окна. Например нажатие на "J" меняет состояние выделенного бита на противоположное.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 28, 2007 09:57 
Не в сети

Регистрация: Вт мар 27, 2007 15:03
Сообщения: 2
Олег хотелось бы уточнить. Каким блоком можно присвоить переменной х (int) значение +1 при срабатывании контакта 200.00 ? Т.е сработал контакт 200.00 значение х=+1. Сработал контакт 200.01 значение х=+3 ?


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 28, 2007 18:40 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Что-то я уже и не догоняю о чём вопрос. Первый как я понял, был о том как из программера, в онлайне быстро менять состояние битов в одном слове.

второй вопрос кажется уже про другое...

LD 200.00
MOV(021) +1 D10
LD 200.01
MOV(021) +3 D10

переключи программер на мнемонику и скопируй текст туда, потом переключи обратно в лад.


В начало
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср мар 28, 2007 19:43 
Не в сети
Аватара пользователя

Регистрация: Сб сен 30, 2006 14:07
Сообщения: 763
Откуда: Москва
На данном сайте заходишь в "Файлы" (см. выше) и скачиваешь файл W340-E1-2 R1.00.zip. Это русское руководство по программированию. Там все конкретно описано с примерами. А на вскидку я бы вместо SET использовал бы @MOV. В адресс 3200 пересылал бы переменную Х изменяемую от 00 до 15 (0000-FFFF в HEX).А вообще в W340-E1-2 R1.00.zip очень много ответов на разные вопросы. Качай- не пожалеешь!


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 09:37 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Момогите разобраться. Есть задача ввести в переменную D0 из скады число в формате BCD, как это сделать из скады я разобрался, но остался другой вопрос. В каком формате должна быть переменная D0 в программере UINT_BCD? или она может быть просто UINT.

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 09:50 
Не в сети
Site Admin
Аватара пользователя

Регистрация: Вт сен 19, 2006 21:13
Сообщения: 3510
Откуда: Москва
Если скада супервайзор, D0 может быть в любом формате который нужен для программы.
Если в настройках точки указать формат который используется в контроллере, супервайзор сам переделает число в понятное нам десятичное.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 10:29 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Скада у меня Supervisor. Если я все правильно понял со скады я ввожу 100 в BCD, значит в программе будет использоваться число 256 (Decimal) что эквивалентно 0100 (HEX). Значит если мне надо чтобы в программе фигурировало число 256 литров к примеру, мне нужно в ВСВ со скады ввести число 100???

_________________
С уважением, Павел.


Отредактировал pavelzii. Дата редактирования: Пн окт 19, 2009 11:14.

В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 11:12 
Не в сети

Регистрация: Ср мар 04, 2009 11:32
Сообщения: 474
Откуда: Москва
Нет. Надо вводить 256. Просто в настройках поля ввода надо указать BCD - если потом в программе это число обрабатывается как BCD или UINT если оно обрабатывается в HEX.
Пример:
Вы ввели число 256 и ячейка в BCD - тогда обрабатывать его (складывать вычитать умножать) нужно с помощью инструкций работающих с BCD - например, +B d0 #256 - прибваить к D0 256 в формате BCD. Иначе вычисления пойдут неправильно.
А вообще проще всего по устанавливать разные типы в поле ввода и посмотреть как они отображаются в контроллере - сами все поймете.
Все это для контроллеров типа CJ/CS.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 11:53 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Уважаемый, Сергей Сергеевич, после проделанных операций по изменению поля ввода, все встало на свои места.
Как я понял если в программе мне необходимо обрабатывать число 256 в ячейке UINT, в Hex мне со скады необходимо вводить число 256 с настроенным полем ввода BCD, или же в ячейке UINT_BCD и дальнейшую работу вести с функциями относящимися к BCD.
Вопрос может показаться глупым, просто я только начал осваивать написание программ и поэтому пытаюсь узнать как можно больше. Раньше занимался только визуализацией и мне как программисты говорили так и делал, а сейчас предстоит самому кое - какие мелочи писать.
Вопрос: "Можно в программе переменные UINT обрабатывать не HEX, а DEC(в дясятичном формате)???"

_________________
С уважением, Павел.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 12:58 
Не в сети

Регистрация: Ср мар 04, 2009 11:32
Сообщения: 474
Откуда: Москва
Все значения в контроллере хранятся в двоичном коде - набор нулей и единиц. HEX, BCD, DEC??(видимо FLOAT - число с плавающей точкой) это только метод отображения данного значения.
НО.
Значение 20bcd - будет хранится в виде 10100 (соответствует 14hex)
20hex - 100000 (или 32bcd).
20float - 100000110100000 (соответствует 41A0hex или 16800bcd или 2,0e+1 float).
То есть если вы ввели значение 256 - это ваше значение в bcd формате - он удобен для понимания. Для того что бы его преобразовать в число 2,56e+2 - то есть в 256 в формат float нужно использовать 2 инструкции:
1. Перевод 256 bcd в формат hex:
BIN #256 d0 - в ячейке D0 получим число 100hex
2. Перевод 100hex в float
FLT d0 d2 - в ячейках d2 и d3 будет лежать 2,56e+2 (числа в формате float занимают 2 слова) и с ним можно работать как с числом с плавающей точкой, используя инструкции для них (содержат букву F, например +F d2 d4 d6 - сложить d2 и d4 и сохранить в d6).
Просто не нужно забывать в каком виде у вас хранится значение и использовать соответствующие инструкции для преобразования из одного формата в другой.
Надеюсь ответил на ваш вопрос. Я его так понял:)
Добавлено:
Тип точки в контроллере для слов всегда оставляю CHANNEL - я так понимаю это отображать как есть без предварительного преобразования в нужный формат. Советую делать так же, а то запутаетесь, особенно при небольшом опыте написания программ.


В начало
 Профиль  
 
 Заголовок сообщения: Re: Ввести переменную
СообщениеДобавлено: Пн окт 19, 2009 13:56 
Не в сети
Аватара пользователя

Регистрация: Ср фев 04, 2009 11:12
Сообщения: 48
Откуда: Московская область
Огромное спасибо, за такое подробное разъяснение материала, теперь мне все ясно)))

_________________
С уважением, Павел.


В начало
 Профиль  
 
Показать сообщения за:  Сортировка  
Начать новую тему Ответить на тему  [ 12 сообщений ] 

Часовой пояс: UTC + 3 часа (Russia: MSK)


Кто сейчас на конференции

Сейчас этот форум просматривают: YandexBot и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Переход:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская документация по phpBB 3