Макро и значения регистров

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Макро и значения регистров

Сообщение bayk »

tvent писал(а):
17 авг 2020, 15:13
В Background macro команды/операции выполняются "построчно", с прерыванием. Поэтому результаты чтения/записи могут просто теряться.
В Clock macro команды выполняться всегда полностью. Поэтому будет медленно, но успешно.
В остальном: где, что и как читать/писать данные - каждый решает сам. Но Панель вместо ПЛК, ИМХО, не лучший вариант((
вот это очень не хотелось писать в ПЛК:

Код: Выделить всё

#E-cam перерасчет и перевод всех параметров

IF $8.3 == ON
delay 5
# расчет длины прямой части of E-cam =  половина от P5-84 в имп.
$m14 = $m4 / 2 (DW)
# перевод прямой части E-cam из имп. в мм
# для ограничения поля ввода величины Р5-87
$12 = FDIV($M14, 51.4856) (Signed DW)
$12 = Fmul($12, 10) (Signed DW)
$16 = $12 - 100 (DW)
$m16 = $16

delay 5
#P5-89 ввод длины используемой 
#прямой части E-cam после которой будет переход возврату в исходную
#$m10 = $M22 (DW)
$M10 = $M20 (DW)
# show  E-cam+cap+cmp param
delay 5
bitoff $8.3
delay 1
ENDIF

#получение количества импульсов CMP функции (маски) из привода
IF $8.4 == ON
delay 5
#P5-11 write adress point in data array
({LINK2}3@SERVO-0516) = 50
delay 2
#P5-12 write data in  5-11 point data array
$M28 = ({Link2}3@SERVO-0518) (DW)
delay 5
BITOFF $8.4
ENDIF

#перерасчет количества импульсов CMP функции (маски)
IF $8.5 == ON
delay 5
    IF $M199.1 == ON
    #общая длина детали минус  расстояние от конца детали
    #до предыдущ. отверстия
    $14 = $m8 - $m24 (DW)
    $m28 = $14 (DW)
    else
    #общая длина детали плюс  расстояние от конца детали
    #для компенсации толщины ножа
    $14 = $m8 + $m24 (DW)
    $m28 = $14 (DW)

    endif
delay 5
BITOFF $8.5
ENDIF

$18 = ({Link2}1@PLC_D7061)

#обработка запроса на включение E-cam
IF $18.0 == ON

   #если задан режим  реза заданной длины
   if $M199.1 == OFF
    #P5-57 CMP axle  position
    delay 10
    ({LINK2}3@SERVO-0572) = $m26 (dw)
    delay 10
    #P5-11 write adress point in data array
    # запись длины вылета детали при первом запуске
    ({LINK2}3@SERVO-0516) = 50
    delay 10
    #P5-12 write data in  5-11 point data array
    ({LINK2}3@SERVO-0518) = $M28 (dw)    
    delay 30

    #P5-11 write adress point in data array
    #запись параметра перезапуска CMP после завершения CAM
    ({LINK2}3@SERVO-0516) = 10
    delay 10
    #P5-12 write data in  5-11 point data array
    ({LINK2}3@SERVO-0518) = 641019H (dw)    
    delay 10

    #P5-59 CMP options
    ({LINK2}3@SERVO-0576) = 641018H (dw)
    delay 10
    #P5-58 CMP number of compare
    ({LINK2}3@SERVO-0574) = 1
    delay 10
    #P5-59 CMP options (start)
    ({LINK2}3@SERVO-0576) = 641019H (dw)
    #P5-87 online update
    ({Link2}3@SERVO-05AE) = $M22 (DW)
    delay 10
    #P5-88 CAM options
    $53006 = ({LINK2}3@SERVO-05B0) (dw)
    $53006 = $53006 & FFFFFFFEH (dw)
    ({LINK2}3@SERVO-05B0) = $53006 (DW)
    #P5-89 CAM Disengage point (in main axis impulses)
    ({LINK2}3@SERVO-05B2) = $M10 (DW)
    #P5-81 first point of CAM massive
    ({LINK2}3@SERVO-05A2) = 100
    #P5-82 lenght of CAM massive
    ({LINK2}3@SERVO-05A4) = 400
    #P5-83 
    ({LINK2}3@SERVO-05A6) = 1
    #P5-84 full lenght of CAM (in main axis impulses)
    ({LINK2}3@SERVO-05A8) = $M4 (DW)
    delay 10
    #P5-88  CAM options (start)
    #({LINK2}3@SERVO-05B0) = 0A6011H (DW) 

   #Если режим с синхро по отверстию и маской
   ELSE
    delay 10  
     #P5-38 CAP number points
    ({LINK2}3@SERVO-054C) = 1
    delay 10
    #P5-57 CMP axle  position
    ({LINK2}3@SERVO-0572) = $m26 (dw)
    delay 10
    #P5-11 write adress point in data array
    ({LINK2}3@SERVO-0516) = 50
    delay 10
    #P5-12 write data in  5-11 point data array
    ({LINK2}3@SERVO-0518) = $M28 (dw)    
    delay 30

    #P5-11 write adress point in data array
    #запись параметра перезапуска CMP после завершения CAM
    ({LINK2}3@SERVO-0516) = 10
    delay 10
    #P5-12 write data in  5-11 point data array
    ({LINK2}3@SERVO-0518) = 640015H (dw)    
    delay 10

    #P5-59 CMP options
    ({LINK2}3@SERVO-0576) = 640014H (dw)
    delay 10
    #P5-58 CMP number of compare
    ({LINK2}3@SERVO-0574) = 1
    delay 10
    #P5-39 CAP options 
    ({LINK2}3@SERVO-054E) = 2018H
    delay 10
    #P5-59 CMP options (start)
    ({LINK2}3@SERVO-0576) = 640015H (dw)
    #P5-87 online update
    ({Link2}3@SERVO-05AE) = $M22 (DW)
    delay 10
    #P5-88 CAM options
    $53006 = ({LINK2}3@SERVO-05B0) (dw)
    $53006 = $53006 & FFFFFFFEH (dw)
    ({LINK2}3@SERVO-05B0) = $53006 (DW)
    #P5-89 CAM Disengage point (in main axis impulses)
    ({LINK2}3@SERVO-05B2) = $M10 (DW)
    #P5-81 first point of CAP massive
    ({LINK2}3@SERVO-05A2) = 100
    #P5-82 lenght of CAP massive
    ({LINK2}3@SERVO-05A4) = 400
    #P5-83 
    ({LINK2}3@SERVO-05A6) = 1
    #P5-84 full lenght of CAM (in main axis impulses)
    ({LINK2}3@SERVO-05A8) = $M4 (DW)
    delay 10
    #P5-88  CAM options (start)
    ({LINK2}3@SERVO-05B0) = 0A6211H (DW)
   ENDIF 
delay 50
#включение флага активного E-cam
BITOn ({Link2}1@PLC_M3010)
BITOFF ({Link2}1@PLC_M3014)
ENDIF

#обработка запроса на отключение E-cam
IF $18.1 == ON
   #если задан режим закрытой петли
   if $M199.1 == OFF
    #P5-39 CAP options
    ({LINK2}3@SERVO-054E) = 2010H
    DELAY 10
    #P5-59 CMP options
    ({LINK2}3@SERVO-0576) = 641018H (dw)
    DELAY 10
    #P5-88 CAM options
    ({LINK2}3@SERVO-05B0) = 0A6010H (DW)
    DELAY 10
   ELSE
    #P5-39 CAP options
    ({LINK2}3@SERVO-054E) = 2010H
    DELAY 10
    #P5-59 CMP options
    ({LINK2}3@SERVO-0576) = 640014H (dw)
    DELAY 10 
    #P5-88 CAM options
    ({LINK2}3@SERVO-05B0) = 0A6010H (DW)
    DELAY 10
   ENDIF
delay 30
({LINK2}3@SERVO-050E) = 0
DELAY 10
#отключение флага активного E-cam
BIToff ({Link2}1@PLC_M3010)
BITOFF ({Link2}1@PLC_M3015)
ENDIF
и это только самая "соль" а еще рецепты и прочие прелести...
да и к тому-же я изначально ошибся с выбором контроллера. брал типа высокоскоростной SV2 (я тут писал) а у него и половины функционала SA2 по работе с высокоскоростными функциями нет, зато входов и прерываний много.. а толку. А ГЛАВНОЕ у него только один 485 интерфейс.
EricFlat писал(а):
17 авг 2020, 15:04
удивительно, но ваши команды макроса у меня не работают тоже. сегодня получу другую HMI, может здесь железный косяк
Попробуйте уйти от ethernet. попробуйте организовать связь через rs-485, мож китайцы что-то недоделали в eth?
Последний раз редактировалось bayk 17 авг 2020, 15:19, всего редактировалось 1 раз.

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Макро и значения регистров

Сообщение tvent »

bayk писал(а):
17 авг 2020, 15:16

вот это очень не хотелось писать в ПЛК:
и это только самая "соль" а еще рецепты и прочие прелести...
Понятно.
Только вот через пару месяцев вы забудете, где, как и для чего были написаны эти макросы.
ИМХО, Макросы на Панели очень неудобны для сопровождения((

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Макро и значения регистров

Сообщение bayk »

на самом деле как раз макросы можно нормально коментить. я уже забывал на пару-тройку месяцев и уже дважды так было, но открываешь макрос и сразу все вспоминается, ну и я именно для этого режима шпаргалку себе написал напишу ;) ну в смысле я стараюсь ))))
гораздо хуже это забыть, как в сервоприводе правильную кривую e-cam строить....
но в контроллере DVP серии все еще хуже, в макросах хоть наглядно видно куда я что записываю и когда, а там эти дикие счетчики, да еще несколько разных циклов... бррр... страшно!
думал в AS серии будет с этим лучше, но из улучшений только возможность использовать одни и те же флаги контроля завершения/аварии в каждом следующем блоке чтения/записи (новом, который там появился) а так по прежнему надо лепить счетчики или еще что...

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Макро и значения регистров

Сообщение tvent »

bayk писал(а):
17 авг 2020, 15:44
но в контроллере DVP серии все еще хуже ... эти дикие счетчики
Для меня, как человека, "воспитанного" на ассемблере и релейных схемах - это абсолютно нормально.

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Макро и значения регистров

Сообщение bayk »

эх, я бы хотел тоже быть воспитанным на ассемблере, но изнежен LD, СИ и интернетом, к тому же образование у меня непрофильное - теплогазоснабжение и вентиляция...

EricFlat
Сообщения: 55
Зарегистрирован: 18 июл 2016, 14:17

Re: Макро и значения регистров

Сообщение EricFlat »

bayk писал(а):
17 авг 2020, 15:16
Попробуйте уйти от ethernet. попробуйте организовать связь через rs-485, мож китайцы что-то недоделали в eth?
действительно. китайцы недоделали eth. через com все работает.
вот только нужен мне eth((( пойду придумывать костыли

bayk
Сообщения: 887
Зарегистрирован: 30 май 2015, 21:20

Re: Макро и значения регистров

Сообщение bayk »

EricFlat писал(а):
17 авг 2020, 19:27
действительно. китайцы недоделали eth. через com все работает.
вот только нужен мне eth((( пойду придумывать костыли
если можешь описать эту проблему более красиво, я передам в техподдержку дельты, в принципе они реагирую оперативно. пиная китайцев.
там же укажи проблему из соседней темы. просто оформи все аккуратно плз, с указанием версий ПО допсофт и isp.
если приложишь пример - цены тебе не будет! где у тебя будут два проекта один в панель, другой в контроллер. и там будут два канала связи между ними - eth и rs и пару переменных - которые читаются одним способом, и другим. например можно секундный счет в контроллере взять, чтобы не заморачиваться, ну или просто закольцованный счетчик.

EricFlat
Сообщения: 55
Зарегистрирован: 18 июл 2016, 14:17

Re: Макро и значения регистров

Сообщение EricFlat »

tvent писал(а):
17 авг 2020, 15:14
EricFlat писал(а):
17 авг 2020, 15:04
Удивительно, но ваши команды макроса у меня не работают тоже. сегодня получу другую HMI, может здесь железный косяк
Попробуйте обновить прошивку Панели.
Прошивку обновляет сам DOPSOFT и сейчас стоит 1,01 версия. Как найти другую я не нашел информации. На сайте в разделе скачиваний прошивки недоступны

tvent
Сообщения: 1019
Зарегистрирован: 11 янв 2011, 17:02

Re: Макро и значения регистров

Сообщение tvent »

EricFlat писал(а):
17 авг 2020, 19:49
Прошивку обновляет сам DOPSOFT и сейчас стоит 1,01 версия. Как найти другую я не нашел информации.
Как то обновлял прошивку сотой панели через filmware update три раза подряд. Каждый раз был новый релиз.
И еще, сбросьте скрин настроек изернета у Панели для связи с ПЛК.

EricFlat
Сообщения: 55
Зарегистрирован: 18 июл 2016, 14:17

Re: Макро и значения регистров

Сообщение EricFlat »

Полное описание проблемы

Не работает запись содержимого регистров ПЛК в регистры памяти панели HMI.
Сеть состоит из двух устройств: DELTA AS300N (DFF 01.06.00) и DOP-100WV (1.0100)
Для обмена настроены два порта: ETHERNET и COM. Настройки на скриншоте.
В панели создан экран и макрос, который записывает значения регистра D100 ПЛК в регистры памяти панели.
Снял видео работы программы.
https://youtu.be/Yf4DVsMLiDw
Как видно регистр D100 читается и редактируется панелью через все порты, но в регистры памяти панели записываются только значения полученные через COM порт.
Если надо, могу выложить проекты.
Вложения
экран
экран
Screenshot_4.jpg (143.7 КБ) 731 просмотр
сеть
сеть
Screenshot_3.jpg (58 КБ) 731 просмотр

Ответить