0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 4
1

по блоку assign в gpss world

06.05.2013, 13:10. Показов 5353. Ответов 7
Метки нет (Все метки)

добрый день!
переделываю из gpss в gpss world и возник вопрос с блоком assign.
есть часть программы в gpss
ASSIGN 1,MX$MAR0(2,&KUD1-1),PL
ASSIGN 2,MX$MAR0(3,&KUD1-1),PL
ASSIGN 3,MX$MAR0(2,&KUD1),PL
ASSIGN 4,MX$MAR0(3,&KUD1),PL
ASSIGN 5,MX$MAR0(1,&KUD1),PL
ASSIGN 6,&KUD1,PL
Gpss World ругается на (2,&KUD1-1)
01/06/13 16:08:53 Line 121, Col 23. Ожидание правильной круглой скобки.
01/06/13 16:08:53 ASSIGN 1,MX$MAR0(2,KUD1-1)
помогите пожалуйста в написании
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2013, 13:10
Ответы с готовыми решениями:

Переменные в GPSS: EQU, SAVEVALUE, VARIABLE, ASSIGN
Я не пойму разницы между savevalue и equ.

GPSS/H GPSS world
как будет выглядеть вот эта строчка (написанная на GPSS/H) на GPSS world BLET ...

GPSS World
Всем привет! Нужна помощь при решении задачи: Вот код: XPDIS FUNCTION RN1,C24 ...

Задача на GPSS WORLD
Добрый день, помогите пожалуйста написать программу на GPSS WORLD В состав двухпроцессорной...

7
1815 / 1029 / 285
Регистрация: 13.02.2012
Сообщений: 3,338
06.05.2013, 15:20 2
Знать бы что эта строчка означает в gpss pc !
Объясните и мне кажется 70% задачи будет решено.
0
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 4
06.05.2013, 18:50  [ТС] 3
Ну получается, что первому параметру транзакта присваивается значение из матрицы.
В матрицу записывается: в первый ряд идентификатор обрабатывающего устройства (1 элемент и последний это склады заготовок и готовых деталей соответственно, а все остальное это РТК), во второй ряд записываются координаты по оси х, а в третий координаты по оси y.
текст программы (имитационная модель АПС на gpss/h)
TEKX, TEKY- координаты транспортной системы в настоящий момент времени
AX,AY – расстояние от текущего местоположения транспортной системы до устройства от которого пришла заявка
BX, BY – расстояние от устройства откуда транспортируется деталь до устройства куда транспортируется деталь
VX, VY – скорость транспортного средства

текст программы на gpss H
не обращайте внимания на запись в файл ATF
Кликните здесь для просмотра всего текста
SIMULTE
RES FILEDEF 'MyRES.TXT'
ATF FILEDEF 'ANIM.ATF'
REAL &TEKX,&TEKY,&AX,&BX,&AY,&BY,&TKRB,&VX,&VY
INTEGER &KUD1
BLET &VX=1 transport speed x
BLET &VY=5
BLET &TKRB=2
MAR0 MATRIX MX,3,7 matrix of technology programme
INITI MX$MAR0(1,1),1 technology programme id (deprecated)
INITI MX$MAR0(1,2),1
INITI MX$MAR0(1,3),2
INITI MX$MAR0(1,4),3
INITI MX$MAR0(1,5),4
INITI MX$MAR0(1,6),5
INITI MX$MAR0(1,7),0

INITI MX$MAR0(2,1),1.90
INITI MX$MAR0(2,2),4.90
INITI MX$MAR0(2,3),10.80
INITI MX$MAR0(2,4),16.70
INITI MX$MAR0(2,5),22.60
INITI MX$MAR0(2,6),28.50
INITI MX$MAR0(2,7),28.50

INITI MX$MAR0(3,1),0.00
INITI MX$MAR0(3,2),0.00
INITI MX$MAR0(3,3),0.00
INITI MX$MAR0(3,4),0.00
INITI MX$MAR0(3,5),0.00
INITI MX$MAR0(3,6),0.00
INITI MX$MAR0(3,7),0.00

GENE 15,,,100,,12PL
ASSIGN 1,MX$MAR0(2,1),PL current detail pos x (on startStore)
ASSIGN 2,MX$MAR0(3,1),PL current detail pos y (on startStore)
ASSIGN 3,MX$MAR0(2,2),PL
ASSIGN 4,MX$MAR0(3,2),PL
ASSIGN 5,MX$MAR0(1,2),PL
ASSIGN 6,2,PL
ASSIGN 7,0,PL *programme ID
ASSIGN 8,15,PL *work time in WS1
ASSIGN 9,5,PL *work time in WS2
ASSIGN 10,5,PL *work time in WS3
ASSIGN 11,5,PL *work time in WS4
ASSIGN 12,15,PL *work time in WS5

BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location startStore at time *.*
TRAN ,KRAN

STORAGE S(KRANSHT),5
KRAN ENTER KRANSHT
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location transport at time *.*
BLET &AX=ABS(&TEKX-PL1)
BLET &AY=ABS(&TEKY-PL2)
BLET &BX=ABS(PL2-PL1)
BLET &BY=ABS(PL2-PL1)
ADVA 1
LEAVE KRANSHT
BLET &TEKX=PL3
BLET &TEKY=PL4
TEST NE PL5,0,YSE
TEST NE PL5,1,RABM1
TEST NE PL5,2,RABM2
TEST NE PL5,3,RABM3
TEST NE PL5,4,RABM4
TEST NE PL5,5,RABM5

STORAGE S(RM1),5
RABM1 ENTER RM1
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location WorkStation wsID 1 at time *.*
SEIZE ROBO1
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location manipulator at time *.*
ADVA 2*2
RELE ROBO1
ADVA PL8
LEAVE RM1
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action leave location WorkStation 1 at time *.*
BLET &KUD1=PL6+1
TEST NE PL7,0,MT0

STORAGE S(RM2),5
RABM2 ENTER RM2
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location WorkStation wsID 2 at time *.*
SEIZE ROBO2
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location manipulator at time *.*
ADVA 2*2
RELE ROBO2
ADVA PL9
LEAVE RM2
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action leave location WorkStation 2 at time *.*
BLET &KUD1=PL6+1
TEST NE PL7,0,MT0

STORAGE S(RM3),5
RABM3 ENTER RM3
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location WorkStation wsID 3 at time *.*
SEIZE ROBO3
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location manipulator at time *.*
ADVA 2*2
RELE ROBO3
ADVA PL10
LEAVE RM3
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action leave location WorkStation 3 at time *.*
BLET &KUD1=PL6+1
TEST NE PL7,0,MT0

STORAGE S(RM4),5
RABM4 ENTER RM4
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location WorkStation wsID 4 at time *.*
SEIZE ROBO4
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location manipulator at time *.*
ADVA 2*2
RELE ROBO4
ADVA PL11
LEAVE RM4
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action leave location WorkStation 4 at time *.*
BLET &KUD1=PL6+1
TEST NE PL7,0,MT0

STORAGE S(RM5),5
RABM5 ENTER RM5
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location WorkStation wsID 5 at time *.*
SEIZE ROBO5
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location manipulator at time *.*
ADVA 2*2
RELE ROBO5
ADVA PL12
LEAVE RM5
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action leave location WorkStation 5 at time *.*
BLET &KUD1=PL6+1
TEST NE PL7,0,MT0

MT0 SEIZE TEST0
ASSIGN 1,MX$MAR0(2,&KUD1-1),PL
ASSIGN 2,MX$MAR0(3,&KUD1-1),PL
ASSIGN 3,MX$MAR0(2,&KUD1),PL
ASSIGN 4,MX$MAR0(3,&KUD1),PL
ASSIGN 5,MX$MAR0(1,&KUD1),PL
ASSIGN 6,&KUD1,PL
RELE TEST0
TRAN ,KRAN
YSE SEIZE FINISH
BPUTPIC FILE=ATF,LINES=1,XID1,PL7,AC1
transact NO * prodID * action enter location finalStore at time *.*
RELE FINISH
TERM 1
START 80
PUTPIC FILE=RES,LINES=14,AC1,N(YSE),SR(RM1)/10,SR(RM2)/10,SR(RM3)/10,SR(RM4)/10,SR(RM5)/10
Simulation time
*.**
Details completed
*.**
1 workstation utility,%
*.**
2 workstation utility,%
*.**
3 workstation utility,%
*.**
4 workstation utility,%
*.**
5 workstation utility,%
*.**
END;

не обращайте внимания на запись в файл ATF
0
1815 / 1029 / 285
Регистрация: 13.02.2012
Сообщений: 3,338
06.05.2013, 19:58 4
Запись assign в gpss World аналогичная
Assign 1,1 В первый параметр транзакта записываем значение 1.

Теперь про ваш случай:
ASSIGN 1,MX$MAR0(2,&KUD1-1),PL
В первый параметр транзакта записываем значение матрицы (2я строка, хрен знает какой столбец)

Что это такое &KUD1-1 ?
Что такое PL ?
0
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 4
06.05.2013, 20:58  [ТС] 5
Цитата Сообщение от Dukalys Посмотреть сообщение
Запись assign в gpss World аналогичная
Assign 1,1 В первый параметр транзакта записываем значение 1.

Теперь про ваш случай:

В первый параметр транзакта записываем значение матрицы (2я строка, хрен знает какой столбец)

Что это такое &KUD1-1 ?
Что такое PL ?
Смысл Assign я понимаю
есть задание перевести из GPSS h в World
сам ломаю голову вторую неделю уже, поэтому решил спросить у более опытных.
по PL могу только пояснить
PL—
параметр формата «плавающая точка»
В GPSS World вроде как нет необходимости это писать, поэтому убираем это, тем более он как раз и ругается на это

Даже понятия не имею для чего использовали &KUD1-1. даже если я забиваю на это выражение и ставлю просто &KUD1, то я потом натыкаюсь на ошибки
05/06/13 23:38:37 Часы: 18.000000.Затем:ADVANCE. Линия 113.
05/06/13 23:38:37 ADVANCE PL12
05/06/13 23:38:37 Операнд A.Недействительное выражение.
05/06/13 23:38:37 Данная величина не калибровалась.
Вот вариант переделки под World
Кликните здесь для просмотра всего текста
SIMULATE
;RES FILEDEF 'MyRES.TXT'
;ATF FILEDEF 'ANIM.ATF'
;REAL &TEKX,&TEKY,&AX,&BX,&AY,&BY,&TKRB,&VX,&VY
;INTEGER &KUD1
VX VARIABLE 1 ;transport speed x
VY VARIABLE 5 ;transport speed y
TKRB VARIABLE 2 ;transport speed y

MAR0 MATRIX ,3,7
INITIAL MX$MAR0(1,1),1
INITIAL MX$MAR0(1,2),1
INITIAL MX$MAR0(1,3),2
INITIAL MX$MAR0(1,4),3
INITIAL MX$MAR0(1,5),4
INITIAL MX$MAR0(1,6),5
INITIAL MX$MAR0(1,7),0

INITIAL MX$MAR0(2,1),1.90
INITIAL MX$MAR0(2,2),4.90
INITIAL MX$MAR0(2,3),10.80
INITIAL MX$MAR0(2,4),16.70
INITIAL MX$MAR0(2,5),22.60
INITIAL MX$MAR0(2,6),28.50
INITIAL MX$MAR0(2,7),28.50

INITIAL MX$MAR0(3,1),0.00
INITIAL MX$MAR0(3,2),0.00
INITIAL MX$MAR0(3,3),0.00
INITIAL MX$MAR0(3,4),0.00
INITIAL MX$MAR0(3,5),0.00
INITIAL MX$MAR0(3,6),0.00
INITIAL MX$MAR0(3,7),0.00

GENERATE 15,,,100
ASSIGN 1,MX$MAR0(2,1),
ASSIGN 2,MX$MAR0(3,1),
ASSIGN 3,MX$MAR0(2,2),
ASSIGN 4,MX$MAR0(3,2),
ASSIGN 5,MX$MAR0(1,2),
ASSIGN 6,2,
ASSIGN 7,0,
ASSIGN 8,15,
ASSIGN 9,5,
ASSIGN 10,5,
ASSIGN 11,5,
ASSIGN 12,15,


TRANSFER ,KRAN
KRANSHT STORAGE 5
KRAN ENTER KRANSHT
AX VARIABLE ABS(TEKX-PL1)
AY VARIABLE ABS(TEKY-PL2)
BX VARIABLE ABS(PL2-PL1)
BY VARIABLE ABS(PL2-PL1)
ADVANCE 1
LEAVE KRANSHT
TEKX VARIABLE PL3
TEKY VARIABLE PL4
TEST NE 5,0,YSE
TEST NE 5,1,RABM1
TEST NE 5,2,RABM2
TEST NE 5,3,RABM3
TEST NE 5,4,RABM4
TEST NE 5,5,RABM5

RM1 STORAGE 5
RABM1 ENTER RM1
SEIZE ROBO1
ADVANCE 2*2
RELEASE ROBO1
ADVANCE PL8
LEAVE RM1
KUD1 VARIABLE PL6+1
TEST NE PL7,0,MT0

RM2 STORAGE 5
RABM2 ENTER RM2
SEIZE ROBO2
ADVANCE 2*2
RELEASE ROBO2
ADVANCE PL9
LEAVE RM2
KUD1 VARIABLE PL6+1
TEST NE PL7,0,MT0

RM3 STORAGE 5
RABM3 ENTER RM3
SEIZE ROBO3
ADVANCE 2*2
RELEASE ROBO3
ADVANCE PL10
LEAVE RM3
KUD1 VARIABLE PL6+1
TEST NE PL7,0,MT0

RM4 STORAGE 5
RABM4 ENTER RM4
SEIZE ROBO4
ADVANCE 2*2
RELEASE ROBO4
ADVANCE PL11
LEAVE RM4
KUD1 VARIABLE PL6+1
TEST NE PL7,0,MT0

RM5 STORAGE 5
RABM5 ENTER RM5
SEIZE ROBO5
ADVANCE 2*2
RELEASE ROBO5
ADVANCE PL12
LEAVE RM5
KUD1 VARIABLE PL6+1
TEST NE PL7,0,MT0

MT0 SEIZE TEST0
;динамическая чейка VARIABLE KUD1-1

ASSIGN 1,MX$MAR0(2,KUD1)
ASSIGN 2,MX$MAR0(3,KUD1)
ASSIGN 3,MX$MAR0(2,KUD1)
ASSIGN 4,MX$MAR0(3,KUD1)
ASSIGN 5,MX$MAR0(1,KUD1)
ASSIGN 6,KUD1
RELEASE TEST0
TRANSFER ,KRAN
YSE SEIZE FINISH

RELEASE FINISH
TERMINATE 1
START 80
OPEN ("MYRES.TXT") ,,
Write (Catenate("Simulation time =", AC1))
Write (Catenate("Details completed =", YSE))
Write (Catenate("1 workstation utility,% =", RM1))
Write (Catenate("2 workstation utility,% =", RM2))
Write (Catenate("3 workstation utility,% =", RM3))
Write (Catenate("4 workstation utility,% =", RM4))
Write (Catenate("5 workstation utility,% =", RM5))
Close ("MYRES.TXT") ,,
Exit
0
1815 / 1029 / 285
Регистрация: 13.02.2012
Сообщений: 3,338
06.05.2013, 21:10 6
1.
Код
OPEN ("MYRES.TXT") ,,
Write (Catenate("Simulation time =", AC1))
Write (Catenate("Details completed =", YSE))
Write (Catenate("1 workstation utility,% =", RM1))
Write (Catenate("2 workstation utility,% =", RM2))
Write (Catenate("3 workstation utility,% =", RM3))
Write (Catenate("4 workstation utility,% =", RM4))
Write (Catenate("5 workstation utility,% =", RM5))
Close ("MYRES.TXT") ,,
Exit
Это тоже закомментировать в топку, автоматически в отчёте выдаётся.

2.
Непонятно в программе везде используется PL, например
KUD1 VARIABLE PL6+1
что бы это PL6 могло бы значить - какой атрибут стандартный ....
Если он есть в World (сомневаюсь) то необходимы скобки
KUD1 VARIABLE (PL6+1)
Понял. Скорее всего это просто вызов значения параметра 6, в gpss World записывается как P6, менять все PL на P.

3.
ADVANCE 2*2
что это за чудо ссылки, или просто 4 или (2#2) (умножить в gpss) или же это хитрая ссылка на второй параметр (ужас, врядли)

4.
ASSIGN 1,MX$MAR0(2,1),
запятые лишние поубирать ...

вроде всё.
1
0 / 0 / 0
Регистрация: 06.05.2013
Сообщений: 4
12.05.2013, 17:18  [ТС] 7
За все эти советы большое спасибо, всё исправил, но вот теперь такая ошибка:
05/12/13 18:58:29 Model Translation Begun.
05/12/13 18:58:29 Ready.
05/12/13 18:58:29 Simulation in Progress.
05/12/13 18:58:29 Error Stop.
05/12/13 18:58:29 Halt. XN: 1. Block 61 Next.
05/12/13 18:58:29 Clock:33.000000. Next: ASSIGN. Line 121.
05/12/13 18:58:29 ASSIGN 1,MX$MAR0(2,P6)
05/12/13 18:58:29 The matrix index is too large.
Просмотр этого самого индекса через команду "SHOW" показал следующий результат:
05/12/13 18:58:43 SHOW P6
05/12/13 18:58:43 10012.0000000
Как ни странно, параметр KUD1 имеет то же значение:
05/12/13 18:59:00 SHOW KUD1
05/12/13 18:59:00 10012.0000000
Итак, вопросы:
  1. можно ли вообще через show просматривать значения переменных в момент "аварийной" остановки программы, как в моем случае?
  1. где изначально в моем коде задается значение параметра P6? (потому что я вообще не вижу такой строки)
  1. ну и почему, собственно, идет переполнение? На что обратить внимание в первую очередь? Мои идеи по этому поводу исчерпаны.
0
1815 / 1029 / 285
Регистрация: 13.02.2012
Сообщений: 3,338
12.05.2013, 18:39 8
ну и почему, собственно, идет переполнение? На что обратить внимание в первую очередь? Мои идеи по этому поводу исчерпаны.
Никакого переполнения нет.
05/12/13 18:58:29 The matrix index is too large.
Означает что в матрице вы используете номер строки/столбца слишком большой (несуществующий).
Как вы правильно посмотрели через SHOW
05/12/13 18:58:43 SHOW P6
05/12/13 18:58:43 10012.0000000
Могу сразу сказать что P6 просто не определено в программе до момента обращения к строке
ASSIGN 1,MX$MAR0(2,P6) .

То есть нужно думать что за такой P6, или самому назначить перед этой строкой ASSIGN 6,1 ;например так

05/12/13 18:59:00 SHOW KUD1
05/12/13 18:59:00 10012.0000000
Это переменная, к ней следует обращаться так V$KUD1
SHOW V$KUD1
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2013, 18:39

Обучение GPSS world
Доброго времени суток, в универе проходим GPSS world дали лабораторную в которой 11 заданий, и не...

GPSS World 20 с нами!
В этом году языку имитационного моделирования GPSS World (любимой моей версии из всех GPSS языков)...

код gpss world
Здравствуйте! Делал программу по своему заданию, данное преподавателем, еще новичок, так что могу...

Расширенный редактор GPSS World
15 мая 2012 г. Вышла beta версия Расширенного Редактора GPSS World, скачать которую можно по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru