Форум TRACE MODE: техническая поддержка
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version » Работа со строками в TRACE MODE

   
Автор / Author Тема / Topic: Работа со строками в TRACE MODE
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
Задача примерно следующая
аппаратная часть:
рабочее место оператора - ноутбук или РС
внешний контроллер, обмен по Modbus ТСР
устройства удаленного ввода-вывода, подключенные к контроллеру

программная часть:
МРВ TRACE MODE на операторском рабочем месте
некоторые служебные программки на операторском рабочем месте
специализированные программы на контроллере

необходимо: читать данные из текстового файла в строковые переменные и далее
- либо неизменными транслировать в контроллер через Modbus ТСР, где будет происходить вся обработка
- либо производить первичную обработку на компьютере под управлением МРВ и уже переработанные данные пересылать в контроллер уже не как строковые данные, а как действительные и целые числа

теоретически необходима возможность загружать данные из произвольного файла, но можно использовать файл с фиксированным именем, в который будет копироваться необходимый файл служебной программкой

справочная система TRACE MODE говорит о такой возможности:
Для канала CALL.STRING
...
если значение атрибута Синхр/Дамп канала не задано ("…"), при старте монитора значения аргументов считываются из файла ../<папка узла>/<имя канала>.txt. Формат файла:

<число задаваемых аргументов, N>
<значение arg0>
<значение arg1>

<значение argN>
<пустая строка>

Для принудительного считывания значений аргументов из файла ../<папка узла>/<имя канала>.txt нужно послать (0-255) в атрибут (41, AB). Для принудительного считывания значений аргументов из файла ../<папка узла>/<имя канала>_<N>.txt (N>255) нужно послать N в атрибут (41, AB).

т.е. загрузить данные из файла с фиксированным именем можно. но возникают несколько вопросов
1) загрузка текстовых строк производится в аргументы канала. т.о. аргументы канала необходимо создать заранее при создании проекта. причем аргументов должно быть не меньше, чем строк в файле. а если в файле 10000 строк, что вполне реально? допускается ли такое количество аргументов? и сколько времени надо потратить на создание такого числа аргументов? а если количество строк в файле 100000, что маловероятно, но все же возможно?
2) справка сообщает, что "аргументы программы читают и пишут в аргументы CALL.STRING, привязанные через атрибуты и аргументы". т.е. вроде бы программа позволяет прочитать и обработать строку, но как это сделать, если канал предоставляет простой набор аргументов - не привязывать же каждый из, например, 10000 аргументов канала к соответствующему аргументу программы. программа допускает структурированные данные вроде массивов, но аргументы канала массивом не являются. или все-таки являются и к ним можно обращаться через одну переменную массива путем индексирования аргументов?
3) даже загрузив аргументы канала в строковые переменные программы неясно как осуществлять их анализ и обработку. в описании отсутствуют функции для работы со строковыми переменными. нет функций по преобразованию типов, т.е. нельзя даже преобразовать строку в последовательность целых чисел для передачи по протоколу Modbus ТСР в контроллер

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

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
.представление чисел в текстовом виде и текстовые строки это разные вещи
.128-129 атрибуты любого канала CALL
.TVC_RSZ=<макс число аргументов>
.10000 можно
.>127 словных регистров записать нельзя(огранич ModBus)

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
сударь, позвольте мне прокомментировать ваш ответ
1) числа в текстовом формате и текстовые строки разные вещи и это мне известно. меня интересуют именно данные строкового типа, т.к. строки содержат не только цифры, но и буквы. никакого массива чисел в текстовом виде не имеется.
2) атрибуты 128 и 129 определяют запись/чтение в текстовый файл со странным расширением .dat. вот думаю нет ли подвоха какого в этом файле, действительно ли он текстовый. и потом мне нужно чтение не чисел в текстовом виде, а именно строк. неясно возможно ли это. хотя если тип аргумента string, то почему нет. вот это мне и надо уточнить. с другой стороны написано "текстовый файл <имя канала>_<N>.dat, каждая строка которого содержит обозначение аргумента и его значение". как разделяется "обозначение аргумента" и его "значение" если и то, и другое текстовая строка? ведь разделитель (например пробел) может трактоваться как часть строки. или TRACE MODE отрезает подстроку, совпадающую с именем аргумента от считанной из файла строки? а если строк много и порядок наименований аргументов и строк не совпадает? я понимаю, что нужно избегать такого, но если случается, то система производит сортировку? а если строк тысячи?
3) TVC_RSZ=<макс число аргументов>: честно говоря не понял смысла этого пункта
4) вопрос не столько в том можно ли 10000 строк (хотя и это тоже интересовало), сколько в том как зафигачить такое количество аргументов. когда в программке (имеется в виду обычное программирование на компутере, а не программа в TRACE MODE) объявляешь массив, то как бе нет необходимости вручную объявлять каждый элемент массива, которых может быть миллиарды (у меня был случай, когда обсчитывался 5-мерный массив со 150 млрд элементов). в TRACE MODE же каждый аргумент канала это независимая переменная.то есть выхода нет? садиться за компьютер и сутки напролет стучать по клавиатуре создавая аргументы?
5) это абсолютно ни на что не влияет. предполагается, что по Modbus будет перегоняться каждый раз 1 строка (в пределах 20-30 символов) или результаты дешифровки строки (не более 10 регистров). использоваться должно одно и то же адресное пространство регистров

так что мои вопросы остались не проясненные:
1) возможно ли как-нибудь аргументы объявлять массивом или надо набивать их вручную сколько бы их не было?
2) надо ли в рукопашную привязывать аргументы канала к аргументам программы сколько бы их не было или возможна привязка на уровне массивов? кстати, возможна ли вообще привязка отдельного элемента массива, объявленного в программе, к аргументу канала?
3) как обрабатывать текстовые строки, если в языке Техно ST отсутствуют операторы и функции для работы с текстовыми строками? не то что для анализа строки и выделения из нее команд, но даже для преобразования строки в символы для передачи в регистры по протоколу Modbus нужны подобные функции, но в справке о них ни слова. или они все-таки существуют?

с уважением

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
1 "нет функций по преобразованию типов" из строки куда??? наверное не понял
2 есть еще 41 атрибут
3 TVC_RSZ=<макс число аргументов> в канале типа САLL создаваемых в RTM
4 TM не база данных на диске для миллиардов строк
150 * 10^9 = 139 Gb [Улыбка / Smile] )
5 строку побайтно можно получить

1 нет пользуются функциями {get/set}Attribute{I/F}
или обработкой векторов в CALL.math
2 =
3 можно даже свою внешнюю функцию написать

С уважением, удачных алгоритмов

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
1) ну в си строка трактуется как одномерный массив char. соответственно и доступ к любому символу строки осуществляется напрямую
в паскале тоже можно выделить отдельный символ строки и преобразовать его из символьного типа в байтовый.
в Техно ST похоже нет никаких операций над строками кроме присваивания
ну вот задача: есть переменная типа string, надо разбить на символы, преобразовать в целый тип и передать по протоколу модбаз (строка по модбазу не передается). в си как бе это вообще не проблема, хотя я не программист, но и то знаю как сделать. как можно в Техно ST из строковой переменной получить массив целых беззнаковых, где каждый элемент массива соответствует коду символа?
2) есть еще много других атрибутов. и что?
3) опять не понятно, вы бы еще кванторами изъяснялись. или иероглифами
4) не отвечаете на вопрос, цепляетесь к несущественной детали. троллите?
5) вы о чем? я писал о том, что мне не нужно загонять весь файл в маленькое адресное пространство протокола модбаз. опять троллите?


1) пользуются для чего? и где про это прочитать?
2) ???
3) можно много чего сделать. можно на голове постоять, можно колесом пройтись. можно ли без написания для всего и вся внешних функций обойтись?

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
call.move с параметром=8
------------------------------------
1 HELP Специальные функции в ST-программе
-------------------------------------

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
call.move с параметром=8
------------------------------------
1 HELP Специальные функции в ST-программе
-------------------------------------

мне неясен смысл программного изменения атрибутов канала при решении моих проблем. я не собираюсь манипулировать атрибутами канала
извините, но мне вообще неясно, на какой из моих исходных вопросов вы отвечаете.
давайте последовательно
можно ли задать аргументы канала группой с одним идентификатором по типу массива?

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
"есть переменная типа string, надо разбить на символы, преобразовать в целый тип" ->
"call.move с параметром=8"

аргументы это тоже атрибуты

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
"есть переменная типа string, надо разбить на символы, преобразовать в целый тип" ->
"call.move с параметром=8"

аргументы это тоже атрибуты

посмотрел я канал call с типом вызова move.
как я понял для дешифрации строки нужно создать дополнительный канал call.string, в нем ряд аргументов (общее количество равно максимальной длине строки), желательно SINT/USINT, чтобы можно было обрабатывать посимвольно (если просто ретранслировать по modbus, то можно и 4 байтовые форматы). первый аргумент ARG00 привязываем к аргументу OUT другого канала call, где находится предназначенная для анализа строка. после этого данная строка записывается посимвольно в ряд байтовых аргументов канала call.string, которые уже можно обрабатывать в программе. так?

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
не так
нужно создать дополнительный канал call.chgr
привязанным к OUT аргументу call.move;

Из In аргументов call.move собирается строка
и распихивается OUT аргументы:
в call.chgr зависит от типа аргументов;
как текстовая строка при другой привязке

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
такой chgr должен быть привязан своим 140 атрибутом
Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
по-видимому, все же придется писать отдельную программу
правда возникает вопрос на хрена нужна TRACE MODE, если 90-99% всей обработки приходится делать внешней по отношению к TRACE MODE
ладно, будем думать...

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
какой анализ строки нужен?
В тм есть масса возможностей но описание страдает

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
1) сформировать массив строк из данных текстового файла
2) последовательный анализ каждого элемента массива
- разбиение на подстроки (каждая подстрока буква-цифры)
- преобразование цифр подстроки в число

в си пункт 2 вообще никаких проблем не вызывает. а здесь какое-то чередование каналов, передача данных из одних каналов в другие, потом в третьи, привязки, перепривязки, создание аргументов

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
к примеру исходная строка "A123BC45" что должно
уйти по ModBus
"<41><7b><42><43><2D>" ?
если просто на С то и написать на нем и подключить

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
к примеру исходная строка "A123BC45" что должно
уйти по ModBus
"<41><7b><42><43><2D>" ?
если просто на С то и написать на нем и подключить

в самом простом случае
0x0041,0x0031,0x0032,0x0033,0x0042,0x0043,0x0034,0x0035 по адресам 0x0000-0x0007
или 0x4131,0x3233,0x4243,0x3435 по адресам 0x0000-0x0003
принципиального значения это не имеет, т.к. влезет как сжатая, так и не сжатая строка

в более сложном случае, например,
0x007b(=123) по адресу 0х0000
0х0000(=0) по адресу 0х0010
0х002d(=45) по адресу 0х0020

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

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
в самом простом случае
тогда проблем никаких нет

групповая запись по не идущим подряд адресам в
ModBus отсутсвует

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
в самом простом случае
тогда проблем никаких нет

никаких проблем нет в случае подключения самостоятельно написанной внешней библиотеки?
quote:
Отправитель / Originally posted by Nico:
групповая запись по не идущим подряд адресам в
ModBus отсутсвует

во втором случае групповая запись и не нужна. строка дешифрируется, коды команд разбрасываются по соответствующим аргументам (или каналам) и передаются в модбас-регистры индивидуально
Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
"в самом простом случае
0x0041,0x0031,0x0032,0x0033,0x0042,0x0043,0x0034,0x0035 по адресам 0x0000-0x0007
или 0x4131,0x3233,0x4243,0x3435 по адресам 0x0000-0x0003" = посылка ASCII строки без всяких преобразований

"0x007b(=123) " а здесь преобразование ASCII числа в целое в бинарный вид

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
"в самом простом случае
0x0041,0x0031,0x0032,0x0033,0x0042,0x0043,0x0034,0x0035 по адресам 0x0000-0x0007
или 0x4131,0x3233,0x4243,0x3435 по адресам 0x0000-0x0003" = посылка ASCII строки без всяких преобразований

"0x007b(=123) " а здесь преобразование ASCII числа в целое в бинарный вид

как мне заметили раньше, строковые типы по модбасу не пересылаются. их нужно преобразовать в массив целых и уже его пересылать группой или поштучно.
но ведь речь не о методике передачи по модбасу, а о получении из строки массива целых средствами TRACE MODE, но без извращений. будет массив целых - дальше все более менее понятно

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
"1234" одна тысяча двести тридцать четыре в десятичой сс
шлется как
ASCII: <31><32><33><34> 4байта 2 регистра ModBus
или
BIN: <04><D2> 2байта 1 регистр ModBus

где <xx> - байт записанный в 16 виде
CALL.move в частности предназначен для конвертации из ASCII в BIN и обратно

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
"1234" одна тысяча двести тридцать четыре в десятичой сс
шлется как
ASCII: <31><32><33><34> 4байта 2 регистра ModBus
или
BIN: <04><D2> 2байта 1 регистр ModBus

где <xx> - байт записанный в 16 виде
CALL.move в частности предназначен для конвертации из ASCII в BIN и обратно

ну понятно, в программе напрямую ASCII в BIN нельзя, только через запись строки в канал CALL.move.
а как обращаться к аргументам строкового типа канала CALL.string из программы с помощью индексирования аргументов? это вообще возможно?

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
.да не нужна никакая программа по тому что описано 18-04-2014 09:08
.. обращаться к аргументам строкового типа канала CALL.string из программы с помощью индексирования аргументов нельзя

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
.да не нужна никакая программа по тому что описано 18-04-2014 09:08
.. обращаться к аргументам строкового типа канала CALL.string из программы с помощью индексирования аргументов нельзя

если косвенно адресовать аргумент канала CALL.string нельзя значит ли, что каждому из нескольких тысяч аргументов канала CALL.string потребуется свой канал CALL.move для преобразования ASCII в BIN (ведь невозможно передавать в один канал CALL.move аргументы канала CALL.string по очереди)?
Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
.возможно
..не надо держать в ОЗУ несколько тысяч строк
если одновременно они не нужны

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
quote:
Отправитель / Originally posted by Nico:
.возможно
..не надо держать в ОЗУ несколько тысяч строк
если одновременно они не нужны

так то оно так, но канал call.string закачивает в аргументы весь текстовый файл целиком, а не считывает одну следующую строку в каждом цикле пересчета каналов. и в программе техно st нет функции чтения переменной (хоть целой, хоть вещественной, хоть строковой) из файла

опять же возвращаемся к написанию внешней функции на си
придется все же писать нечто внешнее. буду экспериментировать

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Nico
Forum Professor / Завсегдатай форума
Участник № / Member № 5342


Icon 1 отправлено / posted      Профиль для / Profile for Nico           Редактировать/удалить сообщение / Edit/Delete Post 
Если грубо: опишите по человечески что нужно сделать !
То ascii, то целое . Теперь с плавающей точкой
Что дальше. Помощь по реализации возможна при
четкой задаче. Иначе вопрос времени и денег.
Это не троллинг [Улыбка / Smile] ) удачи

Сообщения / Posts 803 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
merny
Active Forum Member / Активный участник форума
Участник № / Member № 2290


Icon 1 отправлено / posted      Профиль для / Profile for merny           Редактировать/удалить сообщение / Edit/Delete Post 
да все было описано:
загрузка текстовых строк (неопределенного количества, вплоть до тысяч или даже десятков тысяч) из файла (пусть с фиксированным именем)
последовательное преобразование строк (в каждом цикле пересчета одну строку) в массив целых (каждый элемент массива - ascii код символа строки)

когда получен такой массив, то остальное уже дело техники - с ним уже возможны любые манипуляции

Сообщения / Posts 70 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
В АППАРАТНОМ значении канала CALL.STRING отображается аргумент этого канала с номером, равным его РЕАЛЬНОМУ значению. Таким образом можно выбрать для обработки любую строку из текстового файла, считанного каналом CALL.STRING.

Однако обработать выбранную строку в соответствии с изложенными выше требованиями штатными средствами Trace Mode 6 будет весьма проблематично. Видимо, лучше подключить внешнюю библиотеку.

В частных случаях возможны решения на основе предложений в постах от 17.04 и 18.04.

Конкретная реализация задачи требует более детального изучения предложенной документации.

Топик закрывается.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Открыть тему / Open Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2