Сообщение от Pavel_T
|
Для того чтобы адресно обратиться к ячейкам памяти в коде надо:
1. Правильно настроить мапинг входов/выходов Куки на профинетовские.
(скажем все I/O Куки после 20 мапятся на профинетовские I/O).
2. Вручную с тачпада, из экрана для I/O проверяется функциональность
сигналов (так же и со стороны PLC).
3. В файле .dat, в секции "USER GLOBALS" объявляем, например две переменные:
SIGNAL MyPlcByteIn TO ;получаем байт данных только для чтения
SIGNAL MyPlcByteOut TO ;получаем байт данных, чтение и запись
4. В программе обращаемся с переменными как спеременными типа INT:
IF (MyPlcByteIn == 1) THEN
PTP HOME
ENDIF
5. Если PLC Siemens, то не забываем менять местами старший и младший байт в двухбайтном слове.
Подробнее смотрим в хелпе для WorkVisual.
|
Это было понятно и я придерживался этого плана.... Но тут копался в пакете ServoGun и там реализация обмена через профинет меня несколько озадачила...
1) маппинг адресов. Вроде понятно, за исключением момента - почему маппят всё по каждому биту, если иногда удобнее объединять в байты (INT)
2) линковка с переменными. Не понимаю почему используется только первый и последний биты
3) и совсем пока не понимаю, каким образом через POINT.DATA в эти биты профинета попадает нужное число
может ли кто-то подсказать?
p.s. картинки не прикрепились, вот ссылка -
https://yadi.sk/d/uRUWmET5sdOgOQ