Это уже детали, два двойных слова, всёравно меньше по байтам, чем длинные номера строкой
Вид для печати
Это уже детали, два двойных слова, всёравно меньше по байтам, чем длинные номера строкой
Так ведь текст передается из панели в чем проблема, тем более с числами.
Проблема в безответственном использовании ресурсов контроллера в случае со строкой,тем бодее если заранее длинна номера будет неизвестна
1. В конфигурации ПЛК добавляем модуль Mobdus.
2. Добавляем 6 элементов 2 byte из расчете, что номер телефона не более 12 символов.
3.Для переменной N_Tel указываем прямой адрес ПЛК ( AT %) регистра модуля Modbus(Slave)в данном случае первого. Для панели адрес регистра Modbus будет равен 4х0.
Вложение 10916
4. На экране панели помещаем "Текстовый ввод". В настройках задаем адрес 4х0 и число регистров 6.
Т.к. в шаблоне проекта для панели для текстового ввода используется большая символьная клавиатура с буквами и цифрами, а для ввода номера телефона понадобятся только цифры и символы "#" "*", если вздумаете отправлять USSD запросы, например узнать баланс счета, то предлагаю маленькую клавиатуру.
Вложение 10917
KeyBoard_Asc_02 -окно для нее должно иметь №60035. В этом случае в настройках "Текстового ввода" можно будет выбрать эту маленькую клавиатуру.
Вложение 10918
Нажать на картинку для просмотра анимации.
Можно дополнить проект вводом текста СМС, элементами индикации результата отправки СМС и кодов ошибок.
Спасибо, petera!!
Всё работает, только срезаются первые цифры. вместо 79195609285 в контроллере отображается 5609285. причём если после ввода номера перезапустить панель то она из ПЛК считывает и показавает нормальный номер. всё делал как советовали, что не так?
:(:(:(
Дома нет ПЛК, смогу проверить только в понедельник на работе.
Эти грабли из-за прямой адресации в программе ПЛК ( AT %) регистра модуля Modbus(Slave)?
ЗЫ."...перезапустить панель то она из ПЛК считывает и показавает нормальный номер." может по тому, что при объявлении переменной явно указано начальное значение?
N_Tel AT %QW8.1.0: STRING(12):='79195609285';
DWORD рулит :)