ZWB пожелания

Автор VoronovMaksim88, 07 января 2016, 12:31:31

« назад - далее »

VoronovMaksim88

Хорошо бы чтоб у блока "поле ввода" сделать возможность задания шрифта.
А также всем базовым элементам управления тоже добавить возможность менять шрифт.

VoronovMaksim88

Хорошо бы добавить возможность группового изменения для глобальных переменных.
Также не хватает возможности переноса созданной глобальной переменной в группу, хорошо бы просто дрэгэнддроп-ом.
И хорошо бы чтоб можно выделить несколько переменных через шифт и через контрол и потом перенести их в группу.

Danial

#152
Здравствуйте. Будьте добры, рассмотрите ещё ряд предложений:

1) У блоков R(slave), W(slave) есть неудачная и неудобная специфика, в том, что если они настроены на массив переменных с последовательными адресами, и одной из переменных в подчинённом устройстве не оказалось, или она оказалась неправильного типа данных (скажем с адресом 104 (см.скриншот 1 в приложении)), то весь блок R(slave) будет забракован, и он выдаст ошибку (по-моему ошибку с номером 2). Хотя, если не удалось получить одну переменную, то лучше бы чтобы он как-то сказал, какую именно.

2) Если я делал отладку некоторой программы, в процессе которой менял её переменные ПЗУ, а после этого я загрузил программу в контроллер, то отладчик почему-то считает, что перемененные ПЗУ должны иметь значения, которые я вводил в процессе отладки, а не значения, установленные по-умолчанию. Для того, чтобы сбросить их в значения по-умолчанию приходится заходить в свойства контроллера и нажимать кнопку, что на скриншоте 2.

3) Если контроллер имеет, допустим, несколько подчинённых устройств. И для обращения к каждому есть набор блоков R(slave) и W(slave).
И допустим одно из устройств - отпало. И контроллер очень много времени тратит на то, чтобы опросить все блоки R/W не отвечающего устройства. Можно как-то это оптимизировать. Например, чтобы в блоках R/W была галочка "Отключить блок, если другой блок R/W с таким же номером dev, выдал Ошибку 16". Или что-то типа того.

4) Когда я выбираю переменную с "сетевым доступом", то мне бы очень хотелось, чтобы в её свойствах был бы указан её сетевой адрес (как на рисунке 3 в приложении). Чтобы мне не приходилось лазить в таблице "Сетевых переменных" и искать, какой у неё адрес.

5) Мне бы очень хотелось, чтобы в процессе отладки я мог бы запускать дискретные входы/выходы "Силой". Т.е. у меня, допустим, на выход Dout1 выходит какой-то макрос (который выдаёт 0). А мне срочно надо выдать на Dout1 лог.1. Так вот я щёлкаю на Dout1 а нажимаю что-то вроде "записать силой" и ввожу 1. И на выходе появляется 1 вопреки тому, что выдаёт макрос. И ещё чтобы там какая-нибудь метка висела, что выход зажат силой.
А ещё лучше, чтобы был библиотечный блочёк "Отладчик". Который прямо в процессе отладки можно было бы поставить на любую ветку и он, так сказать, перехватит её значение, и позволит мне записать на эту ветке своё значение (Силой) вопреки тому, что выходит на эту ветку в программе. А когда отладчик я выключу - этот блочёк удалялся бы.

6) Если я, допустим, забыл поставить отладочную точку на какую-то ветку, то мне приходится останавливать отладку, ставить точку и программировать контроллер заново. Можно ли сделать так, чтобы эту точку я мог бы добавлять в процессе отладки (если хватает свободной памяти). Тогда я вообще бы не парился за все эти значения. И не лазил по всем макросам, думая, какое значение я буду мониторить в процессе отладки, а какое мне точно не понадобится. Я вообще бы добавлял эти точки только по мере необходимости и только в процессе отладки.

serov

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

serov

Цитата: Danial от 20 сентября 2017, 14:20:55
1) У блоков R(slave), W(slave) есть неудачная и неудобная специфика, в том, что если они настроены на массив переменных с последовательными адресами, и одной из переменных в подчинённом устройстве не оказалось, или она оказалась неправильного типа данных (скажем с адресом 104 (см.скриншот 1 в приложении)), то весь блок R(slave) будет забракован, и он выдаст ошибку (по-моему ошибку с номером 2). Хотя, если не удалось получить одну переменную, то лучше бы чтобы он как-то сказал, какую именно.
Это специфика Modbus, впрочем и не только его, а наверное всех протоколов. Принцип в том что можно одним запросом прочитать несколько переменных, приходит несколько переменных и контрольная сумма по всем этим переменным, поэтому какая из них кривая - фиг знает. Зато этот способ ускоряет обмен данными. Выход - читать по одной переменной, но это будет медленнее.

serov

Цитата: Danial от 20 сентября 2017, 14:20:55
2) Если я делал отладку некоторой программы, в процессе которой менял её переменные ПЗУ, а после этого я загрузил программу в контроллер, то отладчик почему-то считает, что перемененные ПЗУ должны иметь значения, которые я вводил в процессе отладки, а не значения, установленные по-умолчанию. Для того, чтобы сбросить их в значения по-умолчанию приходится заходить в свойства контроллера и нажимать кнопку, что на скриншоте 2.
Вопрос спорный, что лучше, но главное сбросить можно.

mike

Цитата: serov от 06 октября 2017, 21:55:44
Открыл старый проект, решил к нему Вэб сервер прикрутить. Но вот засада, переменные хоть и называл как можно понятнее, но ведь пришлось лезть вглубь программы, и всё равно ошибся. Решил добавить пару переменных сетевых и понял, что описание не могу сделать сразу при создании переменной, а возможно только потом уже в окне сетевых переменных. Как бы вот оно пожелание!!!
Поддерживаю коллегу!
Надо поставить в план работ

serov

Цитата: Danial от 20 сентября 2017, 14:20:55
3) Если контроллер имеет, допустим, несколько подчинённых устройств. И для обращения к каждому есть набор блоков R(slave) и W(slave).
И допустим одно из устройств - отпало. И контроллер очень много времени тратит на то, чтобы опросить все блоки R/W не отвечающего устройства. Можно как-то это оптимизировать. Например, чтобы в блоках R/W была галочка "Отключить блок, если другой блок R/W с таким же номером dev, выдал Ошибку 16". Или что-то типа того.
Само собой контроллер будет ждать таймаутов. А делать это только Вам. Используйте вход En блоков.

serov

Цитата: Danial от 20 сентября 2017, 14:20:55
6) Если я, допустим, забыл поставить отладочную точку на какую-то ветку, то мне приходится останавливать отладку, ставить точку и программировать контроллер заново. Можно ли сделать так, чтобы эту точку я мог бы добавлять в процессе отладки (если хватает свободной памяти). Тогда я вообще бы не парился за все эти значения. И не лазил по всем макросам, думая, какое значение я буду мониторить в процессе отладки, а какое мне точно не понадобится. Я вообще бы добавлял эти точки только по мере необходимости и только в процессе отладки.
К сожалению ресурсы МК ограничены. Но это вроде не самое страшное, меня больше всего убивало, что прошил в отладку на объекте, все заработало и уехал, а при перезагрузке-то контроллер не стартует. Я бензика из-за этой фигни сжег немеряно. И ведь помню и долблю себя - не забыть прошиться нормально - так ведь нет БЛИН, как только всё заработало, сразу забыл.

mike

Цитата: serov от 06 октября 2017, 22:20:59

К сожалению ресурсы МК ограничены. Но это вроде не самое страшное, меня больше всего убивало, что прошил в отладку на объекте, все заработало и уехал, а при перезагрузке-то контроллер не стартует. Я бензика из-за этой фигни сжег немеряно. И ведь помню и долблю себя - не забыть прошиться нормально - так ведь нет БЛИН, как только всё заработало, сразу забыл.

Не получится в машинах M100 и 120 сделать рабоче-отладочную версию. Слишком мало ресурсов.


VoronovMaksim88

Цитата: Danial от 20 сентября 2017, 14:20:55

4) Когда я выбираю переменную с "сетевым доступом", то мне бы очень хотелось, чтобы в её свойствах был бы указан её сетевой адрес (как на рисунке 3 в приложении). Чтобы мне не приходилось лазить в таблице "Сетевых переменных" и искать, какой у неё адрес.


Согласен с коллегой. Шикарная идея . Странно что мы раньше не додумались )

VoronovMaksim88

Цитата: Danial от 20 сентября 2017, 14:20:55
Здравствуйте. Будьте добры, рассмотрите ещё ряд предложений:


5) Мне бы очень хотелось, чтобы в процессе отладки я мог бы запускать дискретные входы/выходы "Силой". Т.е. у меня, допустим, на выход Dout1 выходит какой-то макрос (который выдаёт 0). А мне срочно надо выдать на Dout1 лог.1. Так вот я щёлкаю на Dout1 а нажимаю что-то вроде "записать силой" и ввожу 1. И на выходе появляется 1 вопреки тому, что выдаёт макрос. И ещё чтобы там какая-нибудь метка висела, что выход зажат силой.
А ещё лучше, чтобы был библиотечный блочёк "Отладчик". Который прямо в процессе отладки можно было бы поставить на любую ветку и он, так сказать, перехватит её значение, и позволит мне записать на эту ветке своё значение (Силой) вопреки тому, что выходит на эту ветку в программе. А когда отладчик я выключу - этот блочёк удалялся бы.


Это легко можно сделать уже сейчас. Надо только добавить мультиплексоров. И переключать их по фронту кнопкой из экрана отладки. Если руки дойдут запишу пример.
Но в целом идея тоже хорошая. Удобно было бы прям на ходу во время отладки кликнуть например по входу правой кнопкой и увидеть надпись "задать 1 принудительно". И чтоб вход при этом менял внешний вид показывая что он принудительно выставлен в 1. Аналогично с выходами.

VoronovMaksim88

Уважаемые разработчики, глобальные переменные это круто и интересно, но вот если они ещё и будут доступны из экранов отладки, то это совсем хорошо будет !

mike

Пока думаем как это можно сделать

VoronovMaksim88

Вот я лично очень рад был бы если бы на одном компе можно было бы одновременно поставить бетта версию ЗВБ и стабильную!