Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Функция MemMove из библиотеки CAA Memory позволит "перевести" всё что угодно во всё что угодно.
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk
работает! спасибо! в принцепи это и искал!
все отлично работает даже в эмуляции!MEM.MemMove(pSource:=ADR(LW1) , pDestination:= ADR(LWArray[0]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+1 , pDestination:= ADR(LWArray[1]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+2 , pDestination:= ADR(LWArray[2]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+3 , pDestination:= ADR(LWArray[3]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+4 , pDestination:= ADR(LWArray[4]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+5 , pDestination:= ADR(LWArray[5]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+6 , pDestination:= ADR(LWArray[6]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LW1)+7 , pDestination:= ADR(LWArray[7]), uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[0]) , pDestination:=ADR(LW2) , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[1]) , pDestination:=ADR(LW2)+1 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[2]) , pDestination:=ADR(LW2)+2 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[3]) , pDestination:=ADR(LW2)+3 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[4]) , pDestination:=ADR(LW2)+4 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[5]) , pDestination:=ADR(LW2)+5 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[6]) , pDestination:=ADR(LW2)+6 , uiNumberOfBytes:= 1);
MEM.MemMove(pSource:=ADR(LWArray[7]) , pDestination:=ADR(LW2)+7 , uiNumberOfBytes:= 1);
Просто изумительно! именно то что я искал! Огромное спасибо! теперь подвежу фор и впуть!
FOR I1:=0 TO 7 BY 1 DO
MEM.MemMove(pSource:=ADR(LW1)+I1 , pDestination:= ADR(LWArray[I1]), uiNumberOfBytes:= 1);
END_FOR
FOR I2:=0 TO 7 BY 1 DO
MEM.MemMove(pSource:=ADR(LWArray[I2]) , pDestination:=ADR(LW2)+I2 , uiNumberOfBytes:= 1);
END_FOR
Последний раз редактировалось Игорь Владимирович; 28.01.2022 в 21:03.
один вопрос остался, как я пишу массив в фаил
sArchEntry это переменная для записи в буфер, подставляю сюда свой массив и впуть ?sArchEntry := WstWst_TO_VLWst.sVeryLongWStr;
fbFileWrite(xExecute:=TRUE, hFile:=hFile, pBuffer:=ADR(sArchEntry), szSize:=(StrLenW(ADR(sArchEntry)))*2)
Вместо
можно так (и это будет семантически эквивалентно):FOR I1:=0 TO 7 BY 1 DO
MEM.MemMove(pSource:=ADR(LW1)+I1 , pDestination:= ADR(LWArray[I1]), uiNumberOfBytes:= 1);
END_FOR
MEM.MemMove(pSource:=ADR(LW1) , pDestination:= ADR(LWArray[0]), uiNumberOfBytes:= 8);
В pBuffer можно передать адрес чего угодно - в т.ч. и вашего массива.sArchEntry это переменная для записи в буфер, подставляю сюда свой массив и впуть ?
Связь со мной: telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru (личка на форуме - не подходит)
Раздел CDS V3.5 на сайте | Основные темы по CDS V3.5 на форуме: Вопросы и ответы | Визуализация | Настройка обмена с другими устройствами
Repository Archive V3.5 SP4 (необходим для СПК207/СПК1хх без Eth/ПЛК3xx)
oscat.ru | Как обратиться в техподдержку? | Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | Проблема XY | Как правильно задавать вопросы | AnyDesk