я цих двох процесів ми введемо змінну PLACE вказує на індекс поточного становища крана, змінну SKOROST, в якій зберігається швидкість крана в м/хв. Нижче наведена таблиця індексів робочих місць.
Таблиця 1
Назва робочого местаІндексСклад заготовок1РТК12РТК13Печь4РТК35РТК46РТК57РТК68РТК79РТК810РТК911Склад готової продукціі12
Для зберігання довжин найкоротших шляхів від кожного до кожного робочого місця будемо використовувати матрицю байтових значень 12х12. Індекс номера стовпця матриці (i) буде вказувати на індекс робочого місця звідки починається переміщення. Індекс рядка матриці (j) буде вказувати на індекс робочого місця, куди потрібно здійснити переміщення. Тобто в осередку матриці (10,4) знаходитиметься значення рівне довжині шляху від РТК8 до печі.
Так як між деякими з РТК існують кілька можливих шляхів переміщення крана (наприклад, в описі системи не вказана довжина прямого шляху від РТК 5 до РТК6 тому, кран може пройти через РТК4 або РТК9).
Для знаходження довжин найкоротших шляхів проаналізуємо зважений граф, в якому вершинами будуть робочі місця, а ребрами - можливі переміщення між ними, вага ребра - довжина шляху.
Використовуючи алгоритм Дейкстри знайдемо найліпші відстані від кожної вершини, до кожної і внесемо отримані значення в нашу матрицю.
Таблиця 2
0243048606669727376768824062436424548495252643060183036394243464658482418012182124252828406036301206912131616286642361860367101022694539219309101310227248422412690131610227349432513710130171022765246281610131617010227652462816101010101001288645840282222222222120
Значення даної матриці будуть використовуватися для визначення часу затримки крана під час операції переміщення до викликав його робочого місця.
Заготівля може пройти операцію по нарізуванню зубів на одному з 4-х РТК (5-8). Для перевірки, чи є вільні РТК для нарізування зубів, використовуємо змінну STZAN і блок TEST, у змінній будемо зберігати число зайнятих приладів (РТК (5-8)), а в блоці будемо проводити перевірку, чи є вільні прилади. У разі якщо є хоча б один вільний прилад (РТК (5-8)), заготівля може пройти операцію по нарізуванню зубів. Для визначення який верстат вільний і до якого верстату кран повинен перенести заготовку використовуємо блоки GATE з логічним покажчиком NULL (перевірка незайнятості приладу), перед транспортуванням до кожного з РТК (5-7). Перед транспортуванням до РТК8 GATE використовувати не потрібно, тому якщо жоден з верстатів РТК (5-7) не вільний, то РТК8 точно вільний. Логіка роботи блоків GATE така, що при спробі входу транзакта в блок GATE перевіряється зайнятий чи ні прилад вказаний в першому операнде. Якщо прилад не зайнятий, то транзакт переходить у наступний блок, а якщо зайнятий, то транзакт переходить до блоку вказаний у другому операнд, яким у нашому випадку є GATE перед іншим РТК. Тобто перевіряється зайнятий чи ні інший РТК. Для того, щоб транзакт після обробки на одному з РТК і перенесення краном пішов на обробку на РТК9, використовується блок TRANSFER в режимі безумовного переходу. Без нього транзакт спробує пройти ту ж операцію на іншому РТК.
* 1. Перед програмною реалізацією повинна бути блок-схема, що складається з графічних аналогів блоків GPSS.
. Також до кожного блоку необхідні коментарі в термінах технології! У програмі .gps, теж повинні бути коментарі!
Код програми:
коментують!
SIMULATE amp; PLACE amp; PLACE=1 amp; STZAN amp; STZAN=0 amp; SKOROST amp; SKOROST=10
MATRIX MB,12,12MB1(1,1),0/MB1(1,2),24/MB1(1,3),30/MB1(1,4),48/MB1(1,5),60/MB1(1,6),66MB1(1,7),69/MB1(1,8),72/MB1(1,9),73/MB1(1,10),76/MB1(1,11),76/MB1(1,12),88MB1(2,1),24/MB1(2,2),0/MB1(2,3),6/MB1(2,4),24/MB1(2,5),36/MB1(2,6),42MB1(2,7),45/MB1(2,8),48/MB1(2,9),49/MB1(2,10),52/MB1(2,11),52/MB1(2,12),64MB1(3,1),30/MB1(3,2),6/MB1(3,3),0/MB1(3,4),18/MB1(3,5),30/MB1(3,6),36MB1(3,7),39/MB1(3,8),42/MB1(3,9),43/MB1(3,10),46/MB1(3,11),46/MB1(3,12),58MB1(4,1),48/MB1(4,2),24/MB1(4,3),18/MB1(4,4),0/MB1(4,5),12/MB1(4,6),18MB1(4,7),21/MB1(4,8),24/MB1(4,9),25/MB1(4,10),28/MB1(4,11),28/MB1(4,12),40MB1(5,1),60/MB1(5,2),36/MB1(5,3),30/MB1(5,4),12/MB1(5,5),0/MB1(5,6),6MB1(5,7),9/MB1(5,8),12/MB1(5,9),13/MB1(5,10),16/MB1(5,11),16/MB1(5,12),28MB1(6,1),66/MB1(6,2),42/MB1(6,3),36/MB1(6,4),18/MB1(6,5),6/MB1(6,6),0MB1(6,7),3/MB1(6,8),6/MB1(6,9),7/MB1(6,10),10/MB1(6,11),10/MB1(6,12),22MB1(7,1),69/MB1(7,2),45/MB1(7,3),39/MB1(7,4),21/MB1(7,5),9/MB1(7,6),3MB1(7,7),0/MB1(7,8),9/MB1(7,9),10/MB1(7,10),13/MB1(7,11),10/MB1(7,12),22MB1(8,1),72/MB1(8,2),48/MB1(8,3),42/MB1(8,4),24/MB1(8,5),12/MB1(8,6),6MB1(8,7),9/MB1(8,8),0/...