Professional Documents
Culture Documents
كتاب برمجة التحكم المنطقى Plc ريمون كمال الجزء الثاني
كتاب برمجة التحكم المنطقى Plc ريمون كمال الجزء الثاني
اء ا
ﺇﻋﺪﺍﺩ
رن آل
ﻃﺒﻌﺔ ﺟﺪﻳﺪﺓ
2012
ﺍﳉﺰﺀ ﺍﻟﺜﺎﱏ
ﻃﺒﺎﻋﺔ
ﺭﻗﻢ ﺍﻹﻳﺪﺍﻉ:
ﺍﻟﺘﺮﻗﻴﻢ ﺍﻟﺪﻭﱃ:
ﺃﻫﺪﻯ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﺇﱃ ﺃﰉ ﻭﺃﻣﻲ ﺍﻟﺬﻳﻦ ﳍﻢ ﻛﻞ ﺍﻟﻔﻀﻞ ﺑﺄﻥ ﺃﻋﻤﻞ ﰲ ﻫﺬﺍ ﺍﺎﻝ ﻭﻫﻢ ﺍﻟﺬﻳﻦ ﺷﺠﻌﻮﱐ
ﻋﻠﻰ ﻋﻤﻞ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﺑﻜﻞ ﺟﻬﺪ ﻭﺇﺧﻼﺹ ﺷﺎﻛﺮ ﺍﷲ ﻭ ﺇﻳﺎﻫﻢ ﻭﻛﻞ ﻣﻦ ﺳﺎﻫﻢ ﰲ ﺗﻘﺪﳝﻪ.
ﻭﺃﺷﻜﺮ ﺃﻳﻀﹰﺎ ﻛﻞ ﺍﳌﻌﻠﻤﲔ ﺍﻷﻓﺎﺿﻞ ﺍﻟﺬﻳﻦ ﺳﺎﻋﺪﻭﺍ ﻋﻠﻰ ﺧﺮﻭﺝ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﺇﱃ ﺍﳌﻠﻲﺀ.
ﺃﺷﻜﺮ ﻛﻞ ﻣﻦ ﺃﺭﺳﻠﻮﺍ ﱃ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﲞﺼﻮﺹ ﺍﳉﺰﺀ ﺍﻷﻭﻝ ﻣﻦ ﺍﻟﻜﺘﺎﺏ ﻭﻗﺪ ﺣﺎﻭﻟﺖ ﻗﺪﺭ ﺍﳌﺴﺘﻄﺎﻉ ﺗﻠﺒﻴﺔ ﻣﺘﻄﻠﺒﺎﻢ ﰱ ﺍﳉﺰﺀ
ﺍﻟﺜﺎﱏ ﻭﺃﺗﺸﺮﻑ ﺑﺎﺳﺘﻘﺒﺎﻝ ﺍﳌﺰﻳﺪ ﻣﻦ ﺗﻌﻠﻴﻘﺎﺕ ﺍﻟﺴﺎﺩﺓ ﺍﻟﻘﺮﺍﺀ ﲞﺼﻮﺹ ﻫﺬﺍ ﳉﺰﺀ ﻣﻦ ﺍﻟﻜﺘﺎﺏ ﻋﻠﻰ ﻋﻨﻮﺍﻥ ﺍﻟﱪﻳﺪ ﺍﻟﺘﺎﱃ
plcbook@hotmail.com
ﻣﻘﺪﻣﺔ
ﻧﻈﺮﹰﺍ ﻟﻠﺘﻘﺪﻡ ﺍﻟﻌﻠﻤﻰ ﺍﻟﺴﺮﻳﻊ ﺍﳌﺮﺗﺒﻂ ﺑﺎﺎﻝ ﺍﻟﺼﻨﺎﻋﻰ ﻭﺧﺎﺻﺔ ﻣﻦ ﺍﻟﻨﺎﺣﻴﺔ ﺍﻟﻜﻬﺮﺑﻴﺔ ﺃﺻﺒﺢ ﻻ ﻏﲎ ﻋﻦ ﺍﻟﺮﺑﻂ
ﺑﲔ ﻋﺎﱂ ﺍﻟﺼﻨﺎﻋﺔ ﻭﺑﲔ ﺍﻟﺘﻜﻨﻮﻟﻮﭼﻴﺎ ﺍﻟﻌﺼﺮﻳﺔ ﻭﻳﺘﻤﺜﻞ ﻫﺬﺍ ﺍﻟﺮﺑﻂ ﺑﻮﺍﺳﻄﺔ ﺍﺳﺘﺨﺪﺍﻡ ﺃﺟﻬﺰﺓ ﺍﻟﺘﺤﻜﻢ ﺍﳌﻨﻄﻘﻰ
ﲟﺨﺘﻠﻒ ﺃﻧﻮﻋﻬﺎ ﻭﺍﻟﱴ ﺗﺴﺘﺤﻖ ﺃﻥ ﺗﺴﻤﻰ ﺑﺎﻷﺟﻬﺰﺓ ﺍﻟﺬﻛﻴﺔ ﻧﻈﺮﹰﺍ ﳌﺎ ﺗﻘﺪﻣﻪ ﰱ ﺍﺎﻝ ﺍﻟﺼﻨﺎﻋﻰ ﻣﻦ :ﺳﻬﻮﻟﺔ ﰱ
ﺗﺼﻤﻴﻢ ﺍﻟﱪﺍﻣﺞ ،ﻭﻣﺮﻭﻧﺔ ﰱ ﺃﻛﺘﺸﺎﻑ ﺍﻷﻋﻄﺎﻝ ،ﻭﻣﺴﺎﻋﺪﺓ ﰱ ﺣﻞ ﺍﳌﺸﺎﻛﻞ... ،ﺍﱁ
ﻭ ﻧﻈﺮﹰﺍ ﻟﺼﻌﻮﺑﺔ ﺗﺮﲨﺔ ﺑﻌﺾ ﺍﳌﺼﻄﻠﺤﺎﺕ ﺍﳋﺎﺻﺔ ﺬﺍ ﺍﺎﻝ ﻭﺧﺎﺻﺔ ﻟﻜﻰ ﻻ ﺗﻔﻘﺪ ﺍﳌﻌﲎ ﺍﻟﺘﻘﲎ ﺃﻭ ﺍﻟﻔﲎ ﳍﺎ،
ﲤﺖ ﻛﺘﺎﺑﺘﻬﺎ ﺑﻠﻐﺘﻬﺎ ﺍﻷﺻﻠﻴﺔ ﻟﺬﻟﻚ ﻻ ﺘﻢ ﻛﺜﲑﹰﺍ ﻋﺰﻳﺰﻯ ﺍﻟﻘﺎﺭﺉ ﺬﻩ ﺍﳌﺼﻄﻠﺤﺎﺕ ﻓﺴﺘﻜﻮﻥ ﺑﺴﻴﻄﺔ ﻭﻣﻔﻬﻮﻣﺔ
ﲟﺠﺮﺩ ﻣﺎ ﺃﻥ ﺗﺘﻌﻤﻖ ﺑﻔﻬﻢ ﰱ ﻫﺬﺍ ﺍﺎﻝ.
ﻫﻜﺬﺍ ﺃﻳﻀﹰﺎ ﻻ ﺗﺘﻌﺠﻞ ﻋﺰﻳﺰﻯ ﺍﻟﻘﺎﺭﺉ ﰱ ﺍﻟﻨﻈﺮ ﺇﱃ ﻣﻮﺍﺿﻴﻊ ﻣﺘﺒﺎﻋﺪﺓ ﺧﺎﺻﺔ ﺃﻥ ﻛﻨﺖ ﲟﺒﺘﺪﺉ ﰱ ﻫﺬﺍ ﺍﺎﻝ
ﻭﻫﺬﺍ ﻷﻧﻪ ﻗﺪ ﰎ ﺷﺮﺡ ﺍﳌﻨﻬﺞ ﺑﻄﺮﻳﻘﺔ ﻣﺘﺴﻠﺴﻠﺔ ﻭﻟﺬﻟﻚ ﻳﻔﻀﻞ ﻟﻠﻘﺎﺭﺉ ﻗﺮﺍﺀﺓ ﺍﳌﻮﺍﺿﻴﻊ ﺑﺎﻟﺘﺴﻠﺴﻞ ﺍﻟﱴ ﻛﺘﺒﺖ
ﺑﻪ ﻟﻔﻬﻢ ﲨﻴﻊ ﺍﻷﻣﻮﺭ ﺩﻭﻥ ﲣﺒﻂ.
ﻭ ﺧﺎﺻﹰﺎ ﻟﻔﻬﻢ ﺍﻟﺘﻤﺎﺭﻳﻦ ﻻ ﻳﺸﺘﺮﻁ ﻓﻘﻂ ﺍﻟﻘﺮﺍﺀﺓ ﺑﺘﺮﺗﻴﺐ ﺑﻞ ﳚﺐ ﺃﻳﻀﹰﺎ ﺃﻥ ﺗﺮﺑﻂ ﻛﻞ ﺷﺮﺡ ﻭ ﻛﻞ ﺭﻣﺰ
ﺑﺎﻟﺮﺳﻢ ﺍﳌﻮﺟﻮﺩ ﻭﻻ ﺗﻘﻮﻡ ﺑﺎﻟﻘﺮﺍﺀﺓ ﺑﻄﺮﻳﻘﺔ ﻋﺎﺑﺮﺓ.
ﰎ ﺷﺮﺡ ﺍﻟﱪﳎﺔ ﺑﻄﺮﻳﻘﺔ ﻋﺎﻣﺔ ﺩﻭﻥ ﺍﻟﻠﺠﺆ ﺇﱃ ﻣﺎﺭﻛﺔ ﺑﻌﻴﻨﻬﺎ ﻭﻫﺬﺍ ﻟﻜﻰ ﳜﺪﻡ ﻛﻞ ﻣﻦ ﻳﻌﻤﻞ ﻣﻊ ﻭﺣﺪﺍﺕ
ﺍﻟﺘﺤﻜﻢ ﺍﳌﻨﻄﻘﻰ ﲟﺨﺘﻠﻒ ﺃﻧﻮﺍﻋﻬﺎ.
ﺗﻨﻘﺴﻢ ﻣﻌﺮﻓﺔ ﺃﺟﻬﺰﺓ ﺍﻟﺘﺤﻜﻢ ﺍﳌﻨﻄﻘﻰ ﺇﱃ ﺃﻣﻮﺭ ﻋﺪﻳﺪﺓ ﻣﻦ ﺃﳘﻬﺎ:
ﺗﺼﻤﻴﻢ ﺑﺮﺍﻣﺞ – ﺍﻛﺘﺸﺎﻑ ﺃﻋﻄﺎﻝ -ﺣﻞ ﻣﺸﺎﻛﻞ
ﻗﺪ ﰎ ﺍﻟﺘﺮﻛﻴﺰ ﺑﺸﻜﻞ ﻛﺒﲑ ﰱ ﺍﳉﺰﺀ ﺍﻷﻭﻝ ﻣﻦ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﻋﻠﻰ ﻣﻌﺮﻓﺔ ﺃﺳﺎﺳﺎﺕ ﺗﺼﻤﻴﻢ ﺍﻟﱪﺍﻣﺞ ﺑﻄﺮﻳﻘﺔ
ﺳﻠﺴﺔ ﻭﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﺳﻬﻞ ﻟﻐﺎﺕ ﺍﻟﱪﳎﺔ ﻭﻟﺬﻟﻚ ﺃﻗﺪﻡ ﻟﻜﻢ ﺍﳉﺰﺀ ﺍﻟﺜﺎﱏ ﻻﺳﺘﻜﻤﺎﻝ ﺷﺮﺡ ﺗﺼﻤﻴﻢ ﺍﻟﱪﺍﻣﺞ
ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﺳﺎﻟﻴﺐ ﺫﺍﺕ ﺃﻛﺜﺮ ﺗﻄﻮﺭ ﻭﻳﺘﻢ ﺍﻵﻥ ﲢﻀﲑ ﺟﺰﺀ ﺧﺎﺹ "ﺑﺄﻛﺘﺸﺎﻑ ﺍﻷﻋﻄﺎﻝ -ﲝﻞ ﺍﳌﺸﺎﻛﻞ
ﻭﺑﺘﺼﻤﻴﻢ ﺍﻟﺘﻤﺎﺭﻳﻦ ﻭﺍﻷﻓﻜﺎﺭ ﺍﻟﻌﻤﻠﻴﺔ".
ﻟﺬﻟﻚ ﺃﻗﺪﻡ ﻟﻜﻢ ﺍﳉﺰﺀ ﺍﻟﺜﺎﱏ ﻣﻦ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﳋﺪﻣﺔ ﻛﻞ ﻣﻦ ﻳﺪﺭﺱ ﺃﻭ ﻳﻌﻤﻞ ﰱ ﻫﺬﺍ ﺍﺎﻝ ﻭ ﺃﲤﲎ ﻣﻦ ﺍﷲ ﺃﻥ
ﳚﺪ ﻛﻞ ﻣﻦ ﻳﻘﺮﺃ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﻧﻔﻌﹰﺎ ﻟﻪ.
ﺍﳌـﺆﻟـﻒ
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺎب اﻷول
اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ
ﻟﻸرﻗـﺎم اﻟﺼﺤﻴﺤﺔ و اﻟﻌﺸﺮﻳﺔ
• أﻧﻮاع اﻟﻌﻤ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ.
5
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ:
ﺗﺴﺘﺨﺪم اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ ﰱ ﺑﻌﺾ اﻟﱪاﻣﺞ اﻟﱴ ﲢﺘﻮى ﻋﻠﻰ ﻣﺘﻐﲑات أو اﻟﱴ ﻳﺘﻢ ﻓﻴﻬﺎ اﻟﺘﺤﻮﻳﻞ ﻣﻦ أى وﺣﺪة
ﻗﻴﺎس إﱃ أى وﺣﺪة ﻗﻴﺎس ﳐﺘﻠﻔﺔ أو ﺣﱴ ﻟﻠﻘﻴﺎم ﲟﻌﺪﻻت ﻣﻦ اﻟﺪرﺟﺔ اﻷوﱃ ,أو اﻟﺜﺎﻧﻴﺔ ,أو ......
ﺗﻨﻘﺴﻢ اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ إﱃ ﻧﻮﻋﲔ ,اﻟﻨﻮع اﻷول ﻫﻮ اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ ﻟﻸرﻗﺎم اﻟﺼﺤﻴﺤﺔ و اﻟﺜﺎﻧﻴﺔ ﻫﻰ
اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ ﻟﻸرﻗﺎم اﻟﻌﺸﺮﻳﺔ.
6
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
7
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
ﻛﻞ اﻟﻌﻤﻠﻴﺎت اﻟﱴ ﺗﺘﻢ ﺑﻮاﺳﻄﺔ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﻟﻸرﻗﺎم اﻟﺼﺤﻴﺤﺔ ﳚﺐ أن ﲢﺘﻮى ﻓﻘﻂ ﻋﻠﻰ أرﻗﺎم
ﺻﺤﻴﺤﺔ و ﳚﺐ أن ﺗﻜﻮن اﻟﻨﻮاﺗﺞ ﻫﻰ أﻳﻀﺎً ﺻﺤﻴﺤﺔ ﻓﻤﺜﻼً:
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﻟﺠﻤﻊ أرﻗﺎم ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﲨﻊ رﻗﻢ ﺑﻘﻴﻤﺔ ٢‚٥و ﻗﻴﻤﺔ ٦‚١ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﺻﺤﻴﺤﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﻟﻄﺮح أرﻗﺎم ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﻃﺮح رﻗﻢ ﺑﻘﻴﻤﺔ ۸‚٥ﻣﻦ رﻗﻢ ٦‚١ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﺻﺤﻴﺤﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﻟﻘﺴﻤﺔ أرﻗﺎم ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﻗﺴﻤﺔ رﻗﻢ ﺑﻘﻴﻤﺔ ٠,١و ﻗﻴﻤﺔ ٥,٣ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﺻﺤﻴﺤﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﻟﻀﺮب أرﻗﺎم ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﺿﺮب رﻗﻢ ﺑﻘﻴﻤﺔ ۸,١٠و ﻗﻴﻤﺔ ٣,٢ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﺻﺤﻴﺤﺔ.
ﻣﻼﺣﻈﺔ:
ﻳﺠﺐ أﻳﻀﺎً ﻣﺮاﻋﺎة اﻟﺨﺮج ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﻌﺎدﻟﺔ أى ﻣﺮاﻋﺎة أن اﻟﻨﺎﺗﺞ ﻳﺠﺐ أن ﻳﻜﻮن رﻗﻢ ﺻﺤﻴﺢ و أن
ﻳﻜﻮن اﻟﻨﺎﺗﺞ ﻣﻮﺿﻮع ﻋﻠﻰ ذاﻛﺮة ﺑﺎﻟﺤﺠﻢ اﻟﺼﺤﻴﺢ ,ﻓﻤﺜﻼً:
-ﻻ ﳝﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﲝﺠﻢ byteﻟﻀﺮب ﻗﻴﻤﺔ ٢٠٠و ﻗﻴﻤﺔ ٢٠٠
ﺑﺎﺳﺘﺨﺪام MUL-Bﻷن اﻟﻨﺎﺗﺞ ﻻ ﳝﻜﻦ أن ﻳﻜﺘﺐ ﻋﻠﻰ .byte
ﻟﺘﺠﻨﺐ ﻫﺬﻩ اﳌﺸﻜﻠﺔ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ أﺧﺮى ذات ﺣﺠﻢ أﻛﱪ ﻣﺜﻞ.word :
-ﻻ ﳝﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ اﻟﺼﺤﻴﺤﺔ ﻟﻘﺴﻤﺔ أرﻗﺎم ﺻﺤﻴﺤﺔ ﻣﺜﻞ ﻗﻴﻤﺔ ١٠و ﻗﻴﻤﺔ ٣
ﻷن اﻟﻨﺎﺗﺞ ﻟﻦ ﺳﻴﻜﻮن رﻗﻢ ﺻﺤﻴﺢ.
-ﻟﺘﺠﻨﺐ ﻫﺬﻩ اﳌﺸﻜﻠﺔ ﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ أﺧﺮى ﻏﲑ ﺻﺤﻴﺤﺔ ﻛﻤﺎ ﺳﻨﻮﺿﺢ ﺑﻌﺪ ﻗﻠﻴﻞ.
8
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
9
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
10
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
11
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
12
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
-١ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﳌﺼﻨﻊ ﳛﺘﻮى ﻋﻠﻰ ﺧﻄﲔ أﻧﺘﺎج ﲝﻴﺚ ﺗﻀﺎء اﻟﻠﻤﺒﺔ ﻋﻨﺪﻣﺎ ﻳﻜﻮن ﺣﺎﺻﻞ
ﳎﻤﻮع اﻟﻘﻄﻊ اﳌﻨﺘﺠﺔ ﻣﻦ اﳋﻄﲔ ﻫﻮ ١٠٠ﻗﻄﻌﺔ.
13
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ:
14
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺸﺮح:
:Network1
ﻋﻨﺪ ﻣﺮور أى ﻗﻄﻌﺔ ﻋﻠﻰ ﺧﻂ اﻹﻧﺘﺎج اﻷول أﻣﺎم اﳊﺴﺎس I0.2ﻓﺄﻧﺔ ﻳﺮﺳﻞ أﺷﺎرة إﱃ اﻟﻌﺪاد C2ﺑﺸﺮط أن
ﻳﻜﻮن اﳌﻔﺘﺎح I0.0ﻣﻔﺘﻮح.
:Network2
ﻋﻨﺪ ﻣﺮور أى ﻗﻄﻌﺔ ﻋﻠﻰ ﺧﻂ اﻹﻧﺘﺎج اﻟﺜﺎﱏ أﻣﺎم اﳊﺴﺎس I0.3ﻓﺄﻧﺔ ﻳﺮﺳﻞ أﺷﺎرة إﱃ اﻟﻌﺪاد C3ﺑﺸﺮط أن
ﻳﻜﻮن اﳌﻔﺘﺎح I0.0ﻣﻔﺘﻮح.
:Network3
ﻳﻘﻮم ﲜﻤﻊ ﻋﺪد اﻟﻘﻄﻊ اﻟﱴ ﰎ ﻋﺪﻫﺎ ﺳﻮاء ﺑﻮاﺳﻄﺔ اﻟﻌﺪاد اﳋﺎص ﲞﻂ اﻹﻧﺘﺎج اﻷول C2أو ﺑﻮاﺳﻄﺔ اﻟﻌﺪاد
اﳋﺎص ﲞﻂ اﻹﻧﺘﺎج اﻟﺜﺎﱏ C3وﻛﺘﺎﺑﺔ اﻤﻮع ﰱ اﻟﺬاﻛﺮة .VW0
:Network4
ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ ﻗﻴﻤﺔ اﻟﺬاﻛﺮة VW0ﺗﺴﺎوى ١٠٠ﻳﺼﺒﺢ ﻣﻔﺘﺎح اﳌﻘﺎرﻧﺔ ﻣﻐﻠﻖ ﻓﺘﻀﺎء اﻟﻠﻤﺒﺔ.
15
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
-٢ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﳌﺼﻨﻊ ﳛﺘﻮى ﻋﻠﻰ ﺧﻂ أﻧﺘﺎج ﲝﻴﺚ ﲤﺮ اﻟﻜﺮﺗﻮﻧﺔ أﻣﺎم اﳊﺴﺎس ﻣﻊ ﻣﺮاﻋﺎة أن
ﻛﻞ ﻛﺮﺗﻮﻧﺔ ﲢﺘﻮى ﻋﻠﻰ ١٢زﺟﺎﺟﺔ ,ﺻﻤﻢ ﺑﺮﻧﺎﻣﺞ ﳌﻌﺮﻓﺔ ﻋﺪد اﻟﺰﺟﺎﺟﺎت و ﻟﻴﺲ اﻟﻜﺮاﺗﲔ وﺗﻀﺎء ﳌﺒﺔ أﺷﺎرة
ﻋﻨﺪﻣﺎ ﻳﺼﻞ ﻋﺪد اﻟﺰﺟﺎﺟﺎت إﱃ .١٢٠
اﻟﺸﺮح:
:Network1
ﻋﻨﺪ ﻣﺮور أى ﻛﺮﺗﻮﻧﺔ ﻋﻠﻰ ﺧﻂ اﻹﻧﺘﺎج أﻣﺎم اﳊﺴﺎس I0.1ﻓﺄﻧﺔ ﻳﺮﺳﻞ أﺷﺎرة إﱃ اﻟﻌﺪاد C0ﺑﺸﺮط أن ﻳﻜﻮن
اﳌﻔﺘﺎح I0.0ﻣﻔﺘﻮح.
:Network2
ﻳﻘﻮم اﻟﱪﻧﺎﻣﺞ ﺑﻀﺮب ﻋﺪد اﻟﻜﺮاﺗﲔ اﻟﱴ ﰎ ﻋﺪﻫﺎ ﺑﻮاﺳﻄﺔ اﻟﻌﺪاد C0ﰱ ﻋﺪد اﻟﺰﺟﺎﺟﺎت ﰒ ﻛﺘﺎﺑﺔ اﻤﻮع ﰱ
اﻟﺬاﻛﺮة .VW24
:Network3
ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ ﻗﻴﻤﺔ اﻟﺬاﻛﺮة VW24ﺗﺴﺎوى ١٢٠ﻳﺼﺒﺢ ﻣﻔﺘﺎح اﳌﻘﺎرﻧﺔ ﻣﻐﻠﻖ ﻓﺘﻀﺎء اﻟﻠﻤﺒﺔ.
16
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ:
17
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
-٣ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﳌﻌﺎدﻟﺔ ﺗﻘﻮم ﺑﺘﺤﻮﻳﻞ درﺟﺔ اﳊﺮارة ﻣﻦ Kelvinإﱃ Celsiusﲝﻴﺚ أذا
ﻛﺎﻧﺖ ﻗﻴﻤﺔ درﺟﺔ اﳊﺮارة ﲢﺖ اﻟﺼﻔﺮ ﺗﻀﻰء ﳌﺒﺔ ﲪﺮاء.
ﻋﻠﻤﺎً ﺑﺄن اﳌﻌﺎدﻟﺔ اﳋﺎﺻﺔ ﺑﺎﻟﺘﺤﻮﻳﻞ ﻫﻰKelvin=Celsius + 273 .
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1وﺑﺸﺮط أن ﻳﻜﻮن I0.0ﻣﻐﻠﻖ ﻓﻴﻌﻤﻞ اﻟﺮﻳﻠﻴﻪ M0.7
:Network2
ﻳﻘﻮم ﺑﻄﺮح ﻗﻴﻤﺔ اﳌﺘﻐﲑ VW2اﻟﺬى ﳝﺜﻞ درﺟﺔ اﳊﺮارة ﺑﺎﻟـ Kelvinﻣﻦ ﻗﻴﻤﺔ اﳌﺘﻐﲑ اﻵﺧﺮة VW2اﻟﱴ
ﲤﺜﻞ اﻟﻔﺮق ﺑﲔ اﻟﻘﻴﻤﺘﲔ "."273
:Network3
ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ ﻗﻴﻤﺔ اﻟـ VW0أﻗﻞ ﻣﻦ ﺻﻔﺮ ﺳﻮف ﺗﻀﺎء ﳌﺒﺔ ﻟﺘﺸﲑ أن درﺟﺔ اﳊﺮارة ﺑﺎﻟﺴﺎﻟﺐ.
18
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ:
19
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
-٤ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﳌﻌﺎدﻟﺔ ﺗﻘﻮم ﺑﻨﻔﺲ ﻋﻤﻞ اﻟﻌﺪاد ﺣﻴﺚ ﻳﻌﻤﻞ اﳋﺮج ﻋﻨﺪﻣﺎ ﻳﺼﻞ اﻟﻌﺪد إﱃ
٣٠٠٠٠٠ﻋﺪة.
ﻋﻠﻤﺎً ﺑﺄن اﳌﻌﺎدﻟﺔ اﳋﺎﺻﺔ ﺑﺎﻟﻌﺪادVD0 = VD0 + 1 .
أسم الدخل نوع الدخل عدد الدخل
I0.0/Stop n.o. ١
I0.1/Start n.o. ٢
عدد المتغيرات نوع المتغيرات أسم المتغيرات
VD0 D.word ١
عدد العمليات نوع العمليات أسم العمليات
INC_DW INC_DW ١
أسم الخرج نوع الخرج عدد الخرج
Q1.0/lamp لمبة ١
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ إﺿﺎﻓﺔ واﺣﺪ إﱃ اﳌﺘﻐﲑ VD0ﻓﻴﻌﻤﻞ ﲤﺎﻣﺎً ﻣﺜﻞ اﻟﻌﺪاد وﻗﺪ ﰎ اﺳﺘﺨﺪام
ﻣﻔﺘﺎح اﻟـ positive edgeﻟﻜﻰ ﺗﻜﻮن ﻛﻞ ﺿﻐﻄﺔ ﻋﻠﻰ اﳌﻔﺘﺎح ﺗﻌﺎدل ﻋﺪة واﺣﺪة ﻓﻘﻂ وﻟﻴﺲ أﻛﺜﺮ.
:Network2
ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0ﺗﺴﺎوى 300000ﻓﺴﻮف ﻳﻌﻤﻞ اﳋﺮج Q1.0ﺗﻠﻘﺎﺋﻴﺎً.
:Network3
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.0ﺳﻮف ﻳﺘﻢ ﻋﻤﻞ resetأى إﻳﻘﺎف ﻟﻠﺨﺮج .Q1.0
:Network4
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.0أﻳﻀﺎً ﺳﻮف ﻳﺘﻢ ﻧﻘﻞ ﻗﻴﻤﺔ ﺻﻔﺮ إﱃ اﳌﺘﻐﲑ VD0ﻟﻜﻰ ﻳﺘﻤﻜﻦ اﻟﻌﺎﻣﻞ ﻣﻦ اﻟﺒﺪء ﻣﻦ
ﺟﺪﻳﺪ ﺑﺪاﻳﺘﺎً ﻣﻦ اﻟﺼﻔﺮ ﻛﻤﺎ ﻛﺎن اﻟﻮﺿﻊ ﰱ اﻟﺒﺪاﻳﺔ.
20
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ.
21
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
22
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
ﻛﻞ اﻟﻌﻤﻠﻴﺎت اﻟﱴ ﺗﺘﻢ ﺑﻮاﺳﻄﺔ اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ ﻟﻸرﻗﺎم اﻟﻌﺸﺮﻳﺔ ﳚﺐ أن ﲢﺘﻮى ﻓﻘﻂ ﻋﻠﻰ أرﻗﺎم ﻋﺸﺮﻳﺔ و
ﳚﺐ أن ﺗﻜﻮن اﻟﻨﻮاﺗﺞ ﻫﻰ أﻳﻀﺎً ﻋﺸﺮﻳﺔ ﻓﻤﺜﻼً:
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻌﺸﺮﻳﺔ ﻟﺠﻤﻊ أرﻗﺎم ﻏﻴﺮ ﻋﺸﺮﻳﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﲨﻊ رﻗﻢ ﺑﻘﻴﻤﺔ ٢و ﻗﻴﻤﺔ ٦ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﻋﺸﺮﻳﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻌﺸﺮﻳﺔ ﻟﻄﺮح أرﻗﺎم ﻏﻴﺮ ﻋﺸﺮﻳﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﻃﺮح رﻗﻢ ﺑﻘﻴﻤﺔ ۸ﻣﻦ رﻗﻢ ١ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﻋﺸﺮﻳﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻌﺸﺮﻳﺔ ﻟﻘﺴﻤﺔ أرﻗﺎم ﻏﻴﺮ ﻋﺸﺮﻳﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﻗﺴﻤﺔ رﻗﻢ ﺑﻘﻴﻤﺔ ١و ﻗﻴﻤﺔ ٣ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﻋﺸﺮﻳﺔ.
-ﻻ ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ اﻟﻌﺸﺮﻳﺔ ﻟﻀﺮب أرﻗﺎم ﻏﻴﺮ ﻋﺸﺮﻳﺔ ﻓﻤﺜﻼً:
ﻻ ﳝﻜﻦ ﺿﺮب رﻗﻢ ﺑﻘﻴﻤﺔ ١٠۸و ﻗﻴﻤﺔ ٢٣ﻷﺎ ﻟﻴﺴﺖ أرﻗﺎم ﻋﺸﺮﻳﺔ.
ﻣﻼﺣﻈﺔ:
ﻻ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﻌﺎدﻟﺔ أى ﻻ داﻋﻰ ﻟﻤﺮاﻋﺎة اﻟﻨﺎﺗﺞ ﻣﻦ اﻟﻨﺎﺣﻴﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﺬاﻛﺮة ﻷﻧﻪ:
-ﻳﺘﻢ اﺳﺘﺨﺪام ذاﻛﺮة ﲝﺠﻢ Dwordﻣﻊ اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ اﻟﻌﺸﺮﻳﺔ وﻫﻮ أﻛﱪ ﺣﺠﻢ ﻟﻠﺬاﻛﺮة ﰱ
اﻟـ PLCﻛﻤﺎ وﺿﺢ ﰱ اﳉﺰء اﻷول ﻣﻦ ﻫﺬا اﻟﻜﺘﺎب.
ﻻ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﻌﺎدﻟﺔ أى ﻻ داﻋﻰ ﻟﻤﺮاﻋﺎة اﻟﻨﺎﺗﺞ ﻣﻦ اﻟﻨﺎﺣﻴﺔ اﻟﺨﺎﺻﺔ ﺑﻨﻮع اﻟﻨﺎﺗﺞ ﻷﻧﻪ:
-ﰱ ﺣﺎﻟﺔ أن ﻛﺎن اﻟﻨﺎﺗﺞ ﻫﻮ رﻗﻢ ﺻﺤﻴﺢ ﺑﺎﻟﺼﺪﻓﺔ ﻣﺜﻼً ﻓﻼ ﺗﻮﺟﺪ أى ﻣﺸﻜﻠﺔ ﻷﻧﻪ ﻳﺘﻢ إﺿﺎﻓﺔ "",٠
إﱃ اﻟﺮﻗﻢ ﻓﻼ ﺗﺘﻐﲑ اﻟﻘﻴﻤﺔ وﻟﻜﻦ ﻳﺼﺒﺢ اﻟﺮﻗﻢ ﻋﺸﺮى ﺗﻠﻘﺎﺋﻴﺎً.
23
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
24
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
ﻋﻤﻠﻴ ـ ـ ــﺎت اﳉـ ـ ـ ــﺰر اﻟﱰﺑﻴﻌ ـ ـ ــﻰ ﲝﺠـ ـ ـ ــﻢ SQRT ٥
Dwordﻟﻠـ ـ ـ ــﺪﺧﻞ IN عملية جزر تربيعى
وﻳﻜﺘ ـ ـ ـ ـ ــﺐ اﻟﻨ ـ ـ ـ ـ ــﺎﺗﺞ OUTﻋﻠ ـ ـ ـ ـ ــﻰ أرقام عشرية
ذاﻛﺮة .Dword
بحجم .Dword
25
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
26
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
ﺗﻮﺿﻴﺢ:
أسم العملية المتغير العملية المتغير العملية Network
عملية ضرب 2
VD20 a VD0 x VD0 axa ١
عملية ضرب 2
VD22 b VD2 x VD2 bxb ٢
عملية جمع VD40 a + b VD20 + VD22 a2 + b2
2 2
٣
جزر تربيعى VD4 a2 + b2 SQRT(VD40) a2 + b2 ٤
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺿﺮب ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD20
:Network2
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺿﺮب ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD2ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD2وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD22
:Network3
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﲨﻊ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD20وﻗﻴﻤﺔ اﳌﺘﻐﲑ VD22وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD40
:Network4
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻖ اﳉﺬر اﻟﱰﺑﻴﻌﻰ ﻋﻠﻰ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD40وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD4
27
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ.
28
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
-٢ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﳌﻌﺎدﻟﺔ ﺗﻘﻮم ﺑﺘﺤﻮﻳﻞ اﻟﺰاوﻳﺔ ﻣﻦ Radiantإﱃ .Degree
ﻋﻠﻤﺎً ﺑﺄن اﳌﻌﺎدﻟﺔ اﳋﺎﺻﺔ ﺑﺎﻟﺘﺤﻮﻳﻞ ﻫﻰ.
ﺗﻮﺿﻴﺢ:
المتغير أسم العملية العملية المتغير العملية Network
عملية قسمة VD8 G/1.8 VD4 / 1.8 G/1.8 ١
عملية طرح VD0 (G/1.8) – 32 VD8 – 32 (G/1.8) – 32 ٢
29
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﻗﺴﻤﺔ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD4ﻋﻠﻰ ۸,۱وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ .VD8
:Network2
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﻃﺮح رﻗﻢ ٣٢,٠ﻣﻦ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD8وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ .VD0
اﻟﺒﺮﻧﺎﻣﺞ:
30
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
ﺗﻮﺿﻴﺢ:
31
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ:
32
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻤﻠﻴﺎت اﳊﺴﺎﺑﻴﺔ
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺿﺮب ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD8
:Network2
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺿﺮب رﻗﻢ ٥,٢ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD8وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD12
:Network3
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﺿﺮب رﻗﻢ ٦,٠ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD0وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ
.VD16
:Network4
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﲨﻊ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD12ﰱ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD16وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ
اﳌﺘﻐﲑ .VD20
:Network5
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﺳﻮف ﻳﺘﻢ ﻃﺮح رﻗﻢ ٤ﻣﻦ ﻗﻴﻤﺔ اﳌﺘﻐﲑ VD20وﻳﺘﻢ وﺿﻊ اﻟﻨﺎﺗﺞ ﰱ اﳌﺘﻐﲑ .VD4
ﻣﻼﺣﻈﺔ:
ﻟﻘﺪ ﰎ ﺗﻨﻔﻴﺬ اﳌﻌﺎدﻟﺔ اﻟﺴﺎﺑﻘﺔ ﻛﻤﺜﺎل ﻋﺎﺑﺮ وﻟﻜﻦ ﰱ ﺣﻘﻴﻘﺔ اﻷﻣﺮ ﻗﺪ ﺗﻜﻮن ﻫﺬﻩ اﳌﻌﺎدﻟﺔ ﺧﺎﺻﺔ ﺑﻘﻴﻤﺔ ﺗﻨﺎﻇﺮﻳﺔ
ﺗﺸﲑ إﱃ درﺟﺔ ﺣﺮارة ,ﺳﺮﻋﺔ ﳏﺮك ,ﺷﺪة اﻟﻀﻐﻂ ,إﱁ....
33
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺒﺎب اﻟﺜﺎﻧﻰ
ﺟﺪول اﻟﺤﺎﻻت
• ﻣﺤﺘﻮﻳﺎت ﺟﺪول اﻟﺤ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺎﻻت.
• أﻣـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺮ .Force
35
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﺗﺴﺘﺨﺪم ﺻﻔﺤﺔ "ﺟﺪول اﳊﺎﻻت" اﻟـ Status Chartﳌﻌﺮﻓﺔ اﳊﺎﻟﺔ اﳋﺎﺻﺔ ﺑﻜﻞ
ﻋﻨﻮان ﻣﻦ اﻟﻌﻨﺎوﻳﻦ اﳌﺴﺘﺨﺪﻣﺔ أو ﻏﲑ اﳌﺴﺘﺨﺪﻣﺔ ﰱ اﻟﱪﻧﺎﻣﺞ
و ﳝﻜﻦ أﻳﻀﺎً ﺗﻌﺪﻳﻞ ﺣﺎﻟﺔ اﳌﺪﺧﻼت ,اﳌﺨﺮﺟﺎت ,اﻟﺮﻳﻠﻴﻬﺎت,
اﳌﺆﻗﺘﺎت اﻟﺰﻣﻨﻴﺔ ,اﻟﻌﺪادات و اﳌﺘﻐﲑات ﺑﻮاﺳﻄﺔ ﻫﺬﻩ اﻟﺼﻔﺤﺔ.
36
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﻣﻼﺣﻈﺔ .ﺳﻮف ﻳﺘﻢ ﺷﺮخ اﻷﻋﻄﺎل ﺑﺎﻟﺘﻔﺼﻴﻞ ﲜﻤﻴﻊ أﻧﻮﻋﻬﺎ ﰱ اﻟﻜﺘﺎب اﻟﺘﺎﱃ.
:Address -ﺣﻴﺚ ﺗﻜﺘﺐ اﻟﻌﻨﺎوﻳﻦ وﻟﻴﺲ ﺑﺎﻟﺸﺮط أن ﻳﻜﻮن اﻟﻌﻨﻮان ﻣﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ.
:Format -ﺣﻴﺚ ﻳﺘﻢ أﺧﺘﻴﺎر اﻟﻄﺮﻳﻘﺔ اﳌﺮاد أﻇﻬﺎر ﺎ ﺣﺎﻟﺔ اﻟﻌﻨﻮان.
:Current value -ﺣﻴﺚ ﺗﻈﻬﺮ ﺣﺎﻟﺔ اﻟﻌﻨﻮان.
:New value -ﺣﻴﺚ ﳝﻜﻦ ﺗﻌﺪﻳﻞ ﺣﺎﻟﺔ اﻟﻌﻨﻮان.
37
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
:Read all forced -٨ﳌﻌﺮﻓﺔ ﻛﻞ اﻟﻌﻨﺎوﻳﻦ اﻟﱴ ﻃﺒﻖ ﻋﻠﻴﻬﺎ أﻣﺮ Forceﺧﺎﺻﺎً ﻋﻨﺪﻣﺎ ﺗﺘﻌﺎﻣﻞ ﻣﻊ
اﳉﻬﺎز ﻷول ﻣﺮة ﳚﺐ اﻟﺘﺄﻛﺪ ﻣﻦ أن ﻛﻞ اﳌﺨﺎرج ﺗﻌﻤﻞ ﺑﻄﺮﻳﻘﺔ ﻃﺒﻴﻌﻴﺔ وﻟﻴﺲ ﲢﺖ ﺗﺄﺛﲑ أﻣﺮ .force
:Trend view -٩ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ ﻳﻘﻮم ﺟﻬﺎز اﻟـ PLCﺑﻌﻤﻞ رﺳﻢ ﲣﻄﻴﻄﻰ diagramﻟﻠﻌﻨﺎوﻳﻦ
اﳌﻜﺘﻮﺑﺔ ﺑﺼﻔﺤﺔ "ﺟﺪول اﳊﺎﻻت" ﺳﻮاء ﻛﺎﻧﺖ اﻟﻌﻨﺎوﻳﻦ اﳌﻮﺟﻮدة ﻫﻰ )ﻣﺪﺧﻼت – ﳐﺮﺟﺎت – ﻣﺆﻗﺘﺎت زﻣﻨﻴﺔ
– ﻋﺪادات – ﻣﺘﻐﲑات – رﻳﻠﻴﻬﺎت داﺧﻠﻴﺔ – إﱁ.(.....
39
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺸﺮح:
-ﺑﻌﺾ اﻟﻌﻨﺎوﻳﻦ ﻻ ﳝﻜﻦ أن ﺗﻈﻬﺮ ﺑﺄﻛﺜﺮ ﻣﻦ ,formatﻓﻤﺜﻼً اﳌﻔﺘﺎح I0.1أو اﳋﺮج Q2.6أو
اﻟﺮﻳﻠﻴﻪ M1.1أو اﳌﺘﻐﲑات V23.4ﻻ ﳝﻜﻦ أن ﻳﻜﻮن ﳍﻢ formatﻏﲑ اﻟـ Bitوﻫﺬا ﻷن
ﺣﺎﻟﺔ اﻟﺪﺧﻞ أو اﳋﺮج أو اﻟﺮﻳﻠﻴﻪ أو اﳌﺘﻐﲑ أﻣﺎ أن ﺗﻜﻮن واﺣﺪ أو ﺻﻔﺮ.
-ﻳﺴﺘﺨﺪم اﻟـ (Floating point) formatﻣﻊ اﻷرﻗﺎم اﻟﻌﺸﺮﻳﺔ ,وﻣﻊ اﻷرﻗﺎم اﻟﻌﺸﺮﻳﺔ وﻣﻊ
اﳌﻌﺪﻻت أو اﳌﺘﻐﲑات أو اﻟـﻤﺪاﺧﻞ واﳌﺨﺎرج اﻟﺘﻨﺎﻇﺮﻳﺔ.
-ﻳﻌﺘﱪ اﻟـ (ASCII) formatﻣﻦ اﻟـ formatاﻷﻗﻞ اﺳﺘﺨﺪاﻣﺎً ﺣﻴﺚ ﻳﻈﻬﺮ اﳊﺎﻟﺔ اﳋﺎﺻﺔ
ﺑﺎﻟﻌﻨﻮان اﳌﺬﻛﻮر ﺑﺎﺳﺘﺨﺪام أﺣﺮف أو رﻣﻮز ﺑﺪﻻً ﻣﻦ اﺳﺘﺨﺪام اﻷرﻗﺎم.
-ﺑﻌﺾ اﻟﻌﻨﺎوﻳﻦ ﳝﻜﻦ أن ﺗﻌﻤﻞ ﻣﻊ أﻛﺜﺮ ﻣﻦ ,formatﻓﻤﺜﻼً اﳌﺆﻗﺖ اﻟﺰﻣﲎ T32أو اﻟﻌﺪاد C0
أو اﳌﺘﻐﲑ VB4ﳝﻜﻦ أن ﻳﻜﻮن ﳍﻢ formatﳐﺘﻠﻔﺔ ﻣﺜﻞ اﻟـ Binaryأو Signedأو
Unsignedأو Hexadecimalأو ASCIIوﻟﻜﻦ ﻳﻔﻀﻞ داﺋﻤﺎً اﺧﺘﻴﺎر اﻷﻓﻀﻞ ﺣﺴﺐ
ﻧﻮع اﻟﻌﻨﻮان اﳌﺴﺘﺨﺪم.
-ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺆﻗﺖ اﻟﺰﻣﲎ أو ﻟﻠﻌﺪاد ﳝﻜﻦ ﺗﻜﺮار اﻟﻌﻨﻮان ﻣﺮﺗﲔ ﲝﻴﺚ أن ﺗﻜﻮن اﳌﺮة اﻷوﱃ ﻣﺜﻼً
) format (Bitوﻫﻰ ﺗﻌﲎ اﳊﺎﻟﺔ اﳋﺎﺻﺔ ﺑﻨﻘﻄﺔ اﻟﻌﺪاد أو ﻧﻘﻄﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﲝﻴﺚ ﺗﺸﲑ أذا
ﻛﺎﻧﺖ ﻣﻐﻠﻘﺔ أو ﻣﻔﺘﻮﺣﺔ ﺑﻴﻨﻤﺎ اﳌﺮة اﻟﺜﺎﻧﻴﺔ ﺗﻜﻮن ﻣﺜﻼً ,Signed) FORMAT
Binary ,Unsignedأو (Hexadecimalﲝﻴﺚ ﺗﺸﲑ إﱃ ﻗﻴﻤﺔ اﻟﺮﻗﻤﻴﺔ ﻟﻠﻌﺪاد أو اﻟﻘﻴﻤﺔ
اﻟﺮﻗﻤﻴﺔ ﻟﻠﻤﺆﻗﺖ اﻟﺰﻣﲎ.
-ﰱ ﺣﺎﻟﺔ اﻻﺳﺘﻌﻼم ﻋﻦ ﺣﺎﻟﺔ ﳎﻤﻮﻋﺔ ﻣﻦ اﳌﺪﺧﻼت أو اﳌﺨﺮﺟﺎت ﻓﺒﺪﻻً ﻣﻦ ﻛﺘﺎﺑﺔ ﻛﻞ دﺧﻞ أو ﻛﻞ
ﺧﺮج أو ﻛﻞ رﻳﻠﻴﻪ أو ﻛﻞ ﻣﺘﻐﲑ ﻋﻠﻰ ﺣﺪى ﳝﻜﻦ اﻻﺳﺘﻌﻼم ﻋﻦ ﳎﻤﻮﻋﺔ ﻣﻜﻮﻧﺔ ﻣﻦ ٨أو ١٦أو
٣٢دﺧﻞ أو ﺧﺮج أو رﻳﻠﻴﻪ أو ﻣﺘﻐﲑ ﻣﻌﺎً ﻋﻦ ﻃﺮﻳﻖ ﺣﺮف اﻟـ Bاﻟﺬى ﻳﺮﻣﺰ إﱃ اﻟـ Byteأى ﲦﺎﻧﻴﺔ
40
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
أو ﻋﻦ ﻃﺮﻳﻖ ﺣﺮف اﻟـ Wاﻟﺬى ﻳﺮﻣﺰ إﱃ اﻟـ Wordأى ﺳﺘﺔ ﻋﺸﺮ أو ﻋﻦ ﻃﺮﻳﻖ ﺣﺮف اﻟـ D
اﻟﺬى ﻳﺮﻣﺰ إﱃ اﻟـ Dwordأى اﺛﻨﺎن و ﺛﻼﺛﻮن ﻓﻤﺜﻼً:
ﺷﺮح ﻣﺒﺴﻂ
:IB0ﺗﻌﲎ أول "ﲦﺎﻧﻴﺔ ﻣﺪﺧﻼت". -
:IB1ﺗﻌﲎ ﺛﺎﱏ "ﲦﺎﻧﻴﺔ ﻣﺪﺧﻼت". -
:QB6ﺗﻌﲎ ﺳﺎﺑﻊ "ﲦﺎﻧﻴﺔ ﳐﺮﺟﺎت". -
:QB9ﺗﻌﲎ ﻋﺎﺷﺮ "ﲦﺎﻧﻴﺔ ﳐﺮﺟﺎت ". -
:IW2ﺗﻌﲎ ﺛﺎﱏ "ﺳﺘﺔ ﻋﺸﺮ دﺧﻞ". -
:IW6ﺗﻌﲎ راﺑﻊ "ﺳﺘﺔ ﻋﺸﺮ دﺧﻞ ". -
:QW4ﺗﻌﲎ ﺛﻼث "ﺳﺘﺔ ﻋﺸﺮ ﺧﺮج ". -
:QW8ﺗﻌﲎ ﺧﺎﻣﺲ "ﺳﺘﺔ ﻋﺸﺮ ﺧﺮج ". -
:ID0ﺗﻌﲎ أول " اﺛﻨﺎن وﺛﻼﺛﲔ دﺧﻞ ". -
:ID4ﺗﻌﲎ ﺛﺎﱏ " أﺛﻨﺎن وﺛﻼﺛﲔ دﺧﻞ ". -
:QD8ﺗﻌﲎ ﺛﻼث "اﺛﻨﺎن وﺛﻼﺛﲔ ﳐﺮج". -
:QD12ﺗﻌﲎ راﺑﻊ "اﺛﻨﺎن وﺛﻼﺛﲔ ﳐﺮج". -
ﺑﺎﺳﺘﺨﺪام ﺻﻔﺤﺔ "ﺟﺪول اﳊﺎﻻت" اﻟـ Status Chartاﻟﱴ ﺗﺴﺘﺨﺪم ﳌﻌﺮﻓﺔ اﳊﺎﻟﺔ اﳋﺎﺻﺔ ﺑﻜﻞ ﻋﻨﻮان ﻣﻦ
اﻟﻌﻨﺎوﻳﻦ اﳌﺴﺘﺨﺪﻣﺔ ﰱ اﻟﱪﻧﺎﻣﺞ أو ﻏﲑ اﳌﺴﺘﺨﺪﻣﺔ ﺣﱴ ,ﳝﻜﻦ أﻳﻀﺎً ﺗﻌﺪﻳﻞ أو ﺗﻐﻴﲑ ﺣﺎﻟﻪ اﻟﻌﻨﺎوﻳﻦ اﳌﺴﺘﺨﺪﻣﺔ
ﰱ اﻟﱪﻧﺎﻣﺞ وﻏﲑ اﳌﺴﺘﺨﺪﻣﺔ أﻳﻀﺎً ﻓﻠﺬاﻟﻚ ﺗﻮﺟﺪ ﻃﺮﻳﻘﺘﺎن ﻟﻠﺘﻌﺪﻳﻞ أو اﻟﺘﻐﲑ ﰱ اﻟﱪﻧﺎﻣﺞ:
41
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﺗﺴﺘﺨﺪم Write allﰱ ﺗﻌﺪﻳﻞ اﻟﱪﻧﺎﻣﺞ وﻟﻜﻦ "ﻣﻊ ﻣﺮاﻋﺎة اﻟﺸﺮوط" اﳌﺴﺘﺨﺪﻣﺔ ﰱ اﻟﱪﻧﺎﻣﺞ.
اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ ﻣﺮاﻋﺎة اﻟﺸﺮوط اﳌﺴﺘﺨﺪﻣﺔ ﰱ اﻟﱪﻧﺎﻣﺞ أى أﻧﻪ ﻻ ﳝﻜﻦ ﺗﻨﻔﻴﺬ أى أﻣﺮ ﺑﻮاﺳﻄﺔ اﻟـ write all
وﰱ ﻧﻔﺲ اﻟﻮﻗﺖ ﻳﻜﻮن ﻣﻦ ﻏﲑ اﳌﻤﻜﻦ ﺗﻨﻔﻴﺬ ﻫﺬا اﻷﻣﺮ ﺑﻮاﺳﻄﺔ اﻟﱪﻧﺎﻣﺞ ,ﻓﻤﺜﻼً:
أ .ﻻ ﳝﻜﻦ ﶈﺮك أن ﻳﻌﻤﻞ ﺑﻴﻨﻤﺎ ﻳﻜﻮن ﻣﻔﺘﺎح اﻹﻳﻘﺎف اﳋﺎص ﺑﺎﶈﺮك ﻣﻔﺘﻮح.
ب .ﻻ ﳝﻜﻦ ﶈﺮك أن ﻳﻘﻒ ﺑﻴﻨﻤﺎ ﻳﻜﻮن ﻣﻔﺘﺎح اﻟﺘﺸﻐﻴﻞ اﳋﺎص ﺑﺎﶈﺮك ﻣﻐﻠﻖ.
ت .ﻻ ﳝﻜﻦ ﶈﺮك ﻋﻜﺲ ﺣﺮﻛﺔ )ﻳﻌﻤﻞ ﰱ اﲡﺎﻫﲔ( أن ﻳﻌﻤﻞ ﰱ اﻻﲡﺎﻫﲔ ﻣﻌﺎً ﰱ ﻧﻔﺲ اﻟﻮﻗﺖ.
ث .ﻻ ﳝﻜﻦ ﳌﺆﻗﺖ زﻣﲎ أن ﻳﺒﺪأ ﺑﺎﻟﻌﻤﻞ ﺑﻴﻨﻤﺎ ﻻ ﺗﻜﻮن ﻫﻨﺎك ﺗﻐﺬﻳﺔ.
ج .ﻻ ﳝﻜﻦ ﻟﻌﺪاد أن ﻳﺒﺪأ ﺑﺎﻟﻌﺪ ﺑﻴﻨﻤﺎ ﺗﻜﻮن ﻛﻞ اﻟﻨﻘﺎط اﳋﺎﺻﺔ ﺑﺎﻹﺷﺎرة ﻏﲑ ﻣﻐﻠﻘﺔ.
42
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﻄﺮﻳﻘﺔ:
-١ﺗﺘﻢ ﻛﺘﺎﺑﺔ اﻟﻌﻨﺎوﻳﻦ اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ﺳﻮاء ﻛﺎﻧﺖ ,ﳐﺮﺟﺎت أو ﻣﺆﻗﺘﺎت زﻣﻨﻴﺔ أو ﻋﺪادات أو ﻣﺘﻐﲑات
إﱁ.....
-٢ﻳﺘﻢ اﺧﺘﻴﺎر اﻟﻄﺮﻳﻘﺔ formatاﳌﺮاد إﻇﻬﺎر ﺎ ﺣﺎﻟﺔ اﻟﻌﻨﻮان اﳌﺬﻛﻮر أﻋﻼﻩ.
-٣ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح chart statusﳌﻌﺮﻓﺔ ﺣﺎﻟﺔ اﻟﻌﻨﺎوﻳﻦ ﺑﺼﻔﺔ ﻣﺴﺘﻤﺮة.
ﻟﺘﻨﻔﻴﺬ اﻟﺘﻐﻴﻴﺮ اﻟﻤﺮاد ﺗﻄﺒﻴﻘﻪ ﺑﻌﺪ ذاﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ write all
43
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﻣﻼﺣﻈﺔ:
-ﻻ ﳝﻜﻦ ﺗﻌﺪﻳﻞ ﺣﺎﻟﺔ اﳌﺪﺧﻼت ﺑﺎﺳﺘﺨﺪام أﻣﺮ .Write all
-ﰱ ﺣﺎﻟﺔ ﺗﻌﺪﻳﻞ ﺧﺮج ﻳﻜﺘﺐ واﺣﺪ ﻟﻠﺘﺸﻐﻴﻞ أو ﺻﻔﺮ ﻟﻺﻳﻘﺎف.
-ﰱ ﺣﺎﻟﺔ ﺗﻌﺪﻳﻞ ﻗﻴﻤﺔ اﻟﻌﺪاد ﺗﻜﺘﺐ اﻟﻘﻴﻤﺔ اﳌﺮاد اﻟﻌﺪاد اﻟﻮﺻﻮل إﻟﻴﻬﺎ وﻟﻴﺲ ﺑﺎﻟﻀﺮورى أن ﻳﺘﻢ ﺗﻨﻔﻴﺬ
ﻫﺬا اﻟﺘﻌﺪﻳﻞ أﺛﻨﺎء ﻋﻤﻞ اﻟﻌﺪاد.
-ﰱ ﺣﺎﻟﺔ ﺗﻌﺪﻳﻞ ﻗﻴﻤﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﺗﻜﺘﺐ اﻟﻘﻴﻤﺔ اﳌﺮاد اﻟﻮﺻﻮل إﻟﻴﻬﺎ ﺑﻮاﺳﻄﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ وﻟﻜﻦ
ﺑﺸﺮط أن ﻳﻜﻮن ﺗﻨﻔﻴﺬ ﻫﺬا اﻟﺘﻌﺪﻳﻞ أﺛﻨﺎء ﻋﻤﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ.
-ﰱ ﺣﺎﻟﺔ ﻛﺘﺎﺑﺔ أى ﻗﻴﻤﺔ ﻋﻠﻰ ﻣﺘﻐﲑات ﳚﺐ أن ﻳﺄﺧﺬ ﰱ اﻻﻋﺘﺒﺎر ﺑﺄن اﻟﻘﻴﻤﺔ اﳌﺮاد ﻛﺘﺎﺑﺘﻬﺎ ﺑﻮاﺳﻄﺔ أﻣﺮ
write allﳚﺐ أن ﻻ ﺗﻜﻮن أﻛﱪ ﻣﻦ أﻛﱪ رﻗﻢ ﳝﻜﻦ ﻛﺘﺎﺑﺘﻪ ﻋﻠﻰ اﳌﺘﻐﲑات وﻳﻨﻄﺒﻖ ﻫﺬا ﻋﻠﻰ
ﲨﻴﻊ اﳌﺘﻐﲑات ﲟﺨﺘﻠﻒ أﺣﺠﺎﻣﻬﺎ ﺣﻴﺚ أن ﰱ ﺣﺎﻟﻪ ﻛﺘﺎﺑﺔ ﻗﻴﻢ ﻛﺒﲑة ﻋﻠﻰ ﻣﺘﻐﲑات ﺻﻐﲑة ﻗﺪ ﻳﺴﺒﺐ
ﻫﺬا ﻣﺸﺎﻛﻞ ﺳﻮف ﻳﺘﻢ ﺗﻮﺿﻴﺤﻬﺎ ﰱ اﻟﻜﺘﺎب اﻟﺘﺎﱃ اﳋﺎص ﺑﺎﻷﻋﻄﺎل واﻟﺘﻤﺮﻳﻦ اﻟﻌﻤﻠﻴﺔ.
L
S1 K1M
S2
K1M
N
44
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺒﺮﻧﺎﻣﺞ:
اﻟﺨﻄﻮات:
-أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ Addressو ﰱ ﻫﺬا اﻟﺘﻤﺮﻳﻦ اﻟﻌﻨﻮان ﻫﻮ Q0.6
-ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ Formatﺣﺴﺐ اﻟـ Addressو ﰱ ﻫﺬﻩ اﻟﺘﻤﺮﻳﻦ اﻟـ Formatﻫﻮ Bit
ﻓﻘﻂ.
-ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى 2#0ﻟﻺﻳﻘﺎف و 2#1ﻟﻠﺘﺸﻐﻴﻞ.
-راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ.
45
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﻣﻼﺣﻈﺔ:
ﻹﻟﻐﺎء أﻣﺮ Write allاﻟﺬى ﰎ اﺳﺘﺨﺪاﻣﻪ ﰱ اﳌﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻮﺟﺪ ﻃﺮﻳﻘﺘﺎن:
-١اﻟﺘﺤﻜﻢ ﺑﺎﳋﺮج ﻋﻦ ﻃﺮﻳﻖ اﻟﱪﻧﺎﻣﺞ أى ﺑﻔﺘﺢ I0.0وﻫﺬا ﻷن أﻣﺮ write allﻻ ﻳﺴﺘﻄﻴﻊ أن ﳜﺎﻟﻒ
اﻟﱪﻧﺎﻣﺞ ﻧﻔﺴﻪ ﻣﻦ ﺣﻴﺚ ﻃﺮﻳﻘﺔ اﻟﺘﺤﻜﻢ ﺑﺎﳋﺮج.
-٢اﻟﺘﺤﻜﻢ ﺑﺎﳋﺮج ﻋﻦ ﻃﺮﻳﻖ Status chartأى ﻟﻺﻳﻘﺎف ﻳﻜﺘﺐ 2#0و ﻟﻠﺘﺸﻐﻴﻞ ﻳﻜﺘﺐ 2#1ﰒ
اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻣﺮة أﺧﺮى.
اﻟﺨﻄﻮات:
أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ Addressو ﰱ ﻫﺬﻩ اﳊﺎﻟﺔ اﻟﻌﻨﻮان ﻫﻮ .T32 -
ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ Formatﺣﺴﺐ اﻟـ Addressو ﰱ ﻫﺬﻩ اﳊﺎﻟﺔ اﻟـ Formatﻫﻮ Bit -
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻨﻘﻄﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ و Signedﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻘﻴﻤﺔ اﻟﻔﻌﻠﻴﺔ ﻟﻠﻤﺆﻗﺖ اﻟﺰﻣﲎ.
ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى ﻟﺘﻐﻴﲑ اﻟﻘﻴﻤﺔ إﱃ أرﺑﻊ ﺛﻮاﱏ ﺗﻜﺘﺐ ﻗﻴﻤﺔ .٤٠٠٠ -
راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ. -
ﺑﺸﺮط أن ﻳﺘﻢ ﻫﺬا اﻟﺘﻄﺒﻴﻖ أﺛﻨﺎء ﻋﻤﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﻷﻧﻨﺎ ﻧﺘﺤﺪث ﻋﻦ زﻣﻦ ﺣﻘﻴﻘﻰ ﻓﻠﺬاﻟﻚ ﻟﻴﺲ ﻣﻦ اﳌﻨﻄﻘﻰ
أن ﻳﺘﻢ أﻋﻄﺎء أى زﻣﻦ ﻟﻠﻤﺆﻗﺖ ﰒ ﻳﺘﻢ ﺑﺪء ﺣﺴﺐ ﻫﺬا ﻣﺆﺧﺮاً ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﻓﻬﺬا ﻷﻧﻨﺎ ﻧﺘﺤﺪث
ﻋﻦ زﻣﻦ ﺣﻘﻴﻘﻰ .real time
46
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺨﻄﻮات:
أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ Addressو ﰱ ﻫﺬﻩ اﳊﺎﻟﺔ اﻟﻌﻨﻮان ﻫﻮ .C10 -
ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ Formatﺣﺴﺐ اﻟـ Addressو ﰱ ﻫﺬﻩ اﳊﺎﻟﺔ اﻟـ Formatﻫﻮ Bit -
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻨﻘﻄﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ و Signedﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﻘﻴﻤﺔ اﻟﻔﻌﻠﻴﺔ ﻟﻠﻌﺪاد.
ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى ﻟﺘﻐﻴﲑ اﻟﻘﻴﻤﺔ إﱃ ﲬﺴﺔ ﻋﺸﺮ ﺗﻜﺘﺐ ﻗﻴﻤﺔ .۱٥ -
راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ. -
ﻣﻼﺣﻈﺔ:
-ﳚﺐ داﺋﻤﺎً اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻟﺘﻨﻔﻴﺬ اﻟﻘﻴﻢ اﳌﻜﺘﻮﺑﺔ ﰱ .New value
-ﻟﻴﺲ ﺑﺎﻟﺸﺮط أن ﻳﺘﻢ ﻫﺬا اﻟﺘﻄﺒﻴﻖ أﺛﻨﺎء ﻋﻤﻞ اﻟﻌﺪاد ﻷﻧﻨﺎ ﻧﺘﺤﺪث ﻋﻦ إﺷﺎرات ﺣﻘﻴﻘﻴﺔ ﲢﺘﺴﺐ ﻓﻘﻂ
ﻋﻨﺪ إرﺳﺎل اﻹﺷﺎرة ﺑﻮاﺳﻄﺔ اﻟﻀﻐﻂ ﻋﻠﻰ اﳌﻔﺘﺎح ﻣﺜﻼً ﻓﻠﺬاﻟﻚ ﻣﻦ اﳌﻨﻄﻘﻰ ﺟﺪاً أن ﻳﺘﻢ أﻋﻄﺎء أى
رﻗﻢ ﻟﻠﻌﺪاد ﰒ ﻳﺘﻢ ﺑﺪء ﺣﺴﺐ ﻫﺬا ﻣﺆﺧﺮاً ﻋﻨﺪ ﺗﺸﻐﻴﻞ اﻟﻌﺪاد أو ﰱ اﳊﺎل إذ ﻛﺎن اﻟﻌﺪاد ﻳﻌﻤﻞ أﺳﺎﺳﺎً
ﻓﻬﺬﻩ اﻟﻌﻤﻠﻴﺔ ﻻ ﺗﺮﺗﺒﻂ ﺑـﺰﻣﻦ ﺣﻘﻴﻘﻰ .real time
-ﰱ ﺣﺎﻟﺔ إرﺳﺎل ﻗﻴﻤﺔ إﱃ اﻟﻌﺪاد ﺣﱴ وأن ﻛﺎﻧﺖ ﻫﺬﻩ اﻟﻘﻴﻤﺔ أﻛﱪ أو ﺗﺴﺎوى اﻟﻘﻴﻤﺔ اﳌﺴﺒﻘﺔ )إى
اﻟﻘﻴﻤﺔ اﳌﻘﺼﻮدة( ﻓﺄﻧﻪ ﻳﺸﱰط داﺋﻤﺎ أن ﻳﻌﻤﻞ اﻟﻌﺪاد ﺣﱴ ﻳﺘﻢ ﺗﻔﻌﻴﻞ اﳊﺎﻟﻪ اﳊﻘﻴﻘﻴﺔ ﻟﻠﻨﻘﺎط اﳋﺎﺻﺔ
ﺑﺎﻟﻌﺪاد ﻷﻧﻪ ﻟﻴﺲ ﻣﻦ اﳌﻨﻄﻘﻲ أن ﻳﻐﲑ اﻟﻌﺪاد اﻟﻨﻘﺎط اﳋﺎﺻﺔ ﺑﻪ أن ﻛﺎن ﱂ ﻳﻌﻤﻞ ﺑﻌﺪ.
47
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
L
S3
OL
K2M K1M
K1M M2K
48
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺒﺮﻧﺎﻣﺞ
اﻟﺨﻄﻮات:
-أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ Addressو ﰱ ﻫﺬا اﻟﺘﻤﺮﻳﻦ اﻟﻌﻨﻮان ﻫﻮ Q0.2و
Q0.4
-ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ Formatﺣﺴﺐ اﻟـ Addressو ﰱ ﻫﺬﻩ اﻟﺘﻤﺮﻳﻦ اﻟـ Formatﻫﻮ
Bitﻓﻘﻂ.
ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى 2#0ﻟﻺﻳﻘﺎف أو 2#1ﻟﻠﺘﺸﻐﻴﻞ ﺑﺎﻟﻨﺴﺒﺔ ﻷى ﻣﻦ اﳋﺮﺟﲔ. -
راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ Write allﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ. -
ﻣﻼﺣﻈﺔ:
49
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﻹﻟﻐﺎء أﻣﺮ Write allاﻟﺬى ﰎ اﺳﺘﺨﺪاﻣﻪ ﰱ اﳌﺜﺎل اﻟﺴﺎﺑﻖ ﺗﺘﻢ اﺳﺘﺨﺪام ﻧﻔﺲ اﻟﻄﺮﻳﻘﺘﺎن اﻟﺬﻳﻦ -
ﺳﺒﻖ ﺷﺮﺣﻬﻢ.
ﻣﻦ اﻟﺸﻰء اﳌﻬﻢ ﺟﺪاً ﰱ اﻟـ Write allأﻧﻪ ﻻ ﳝﻜﻦ أن ﻳﻘﻮم ﺑﺘﻐﲑ أى ﺣﺎﻟﺔ دون ﻣﺮاﻋﺎة اﻟﺸﺮوط -
اﳌﻮﺟﻮدة ﰱ اﻟﱪﻧﺎﻣﺞ ,ﻓﻤﺜﻼً اﻟﺘﻤﺮﻳﻦ اﻟﺴﺎﺑﻖ ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﳏﺮك اﲡﺎﻫﲔ وﻣﻦ اﳌﻌﺮوف أﻧﺔ ﻻ ﳝﻜﻦ
ﺗﺸﻐﻴﻞ اﲡﺎﻫﲔ ﻣﻌﺎً ﻷن اﻟﺘﻤﺮﻳﻦ ﳛﺘﻮى ﻋﻠﻰ ﻧﻘﻂ ﻣﻐﻠﻘﺔ ﻣﻦ اﻟﻄﺮﻓﲔ ﻓﻠﺬﻟﻚ وﻻ ﺣﱴ أﻣﺮ Write
allﻳﺴﺘﻄﻴﻊ أن ﻳﻘﻮم ﺑﺘﺸﻐﻴﻞ اﻻﲡﺎﻫﲔ ﻣﻌﺎً.
أ .ﳝﻜﻦ ﶈﺮك أن ﻳﻌﻤﻞ ﺑﻴﻨﻤﺎ ﻳﻜﻮن ﻣﻔﺘﺎح اﻹﻳﻘﺎف اﳋﺎص ﺑﺎﶈﺮك ﻣﻔﺘﻮح.
ب .ﳝﻜﻦ ﶈﺮك أن ﻳﻘﻒ ﺑﻴﻨﻤﺎ ﻳﻜﻮن ﻣﻔﺘﺎح اﻟﺘﺸﻐﻴﻞ اﳋﺎص ﺑﺎﶈﺮك ﻣﻐﻠﻖ.
ت .ﳝﻜﻦ ﶈﺮك ﻋﻜﺲ ﺣﺮﻛﺔ أن ﻳﻌﻤﻞ ﰱ اﻻﲡﺎﻫﲔ ﻣﻌﺎً ﰱ ﻧﻔﺲ اﻟﻮﻗﺖ )ﻗﻔﻠﻪ(.
اﻟﻄﺮﻳﻘﺔ:
-١ﺗﺘﻢ ﻛﺘﺎﺑﺔ اﻟﻌﻨﺎوﻳﻦ اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ﺳﻮاء ﻛﺎﻧﺖ ,ﻣﺪاﺧﻞ ,ﳐﺎرج ,اﱁ........
50
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
-٢ﻳﺘﻢ اﺧﺘﻴﺎر اﻟﻄﺮﻳﻘﺔ formatاﳌﺮاد أﻇﻬﺎر ﺎ ﺣﺎﻟﺔ اﻟﻌﻨﻮان اﳌﺬﻛﻮر أﻋﻼﻩ ﻛﻤﺎ وﺿﺢ ﰱ ﻣﺎ ﻗﺒﻞ ﰱ ﻧﻔﺲ
اﻟﺒﺎب.
-٣ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ chart statusﳌﻌﺮﻓﺔ ﺣﺎﻟﺔ اﻟﻌﻨﺎوﻳﻦ اﳌﻜﺘﻮﺑﺔ ﺑﺼﻔﺔ ﻣﺴﺘﻤﺮة.
ﻣﻼﺣﻈﺔ:
-ﳝﻜﻦ ﺗﻌﺪﻳﻞ ﺣﺎﻟﺔ اﻟﺪﺧﻞ ﺑﺎﺳﺘﺨﺪام أﻣﺮ .Force
-ﰱ ﺣﺎﻟﺔ ﺗﻌﺪﻳﻞ ﺧﺮج ﻳﻜﺘﺐ واﺣﺪ ﻟﻠﺘﺸﻐﻴﻞ أو ﺻﻔﺮ ﻟﻺﻳﻘﺎف.
-ﻻ ﳝﻜﻦ ﺗﻌﺪﻳﻞ ﻗﻴﻤﺔ اﻟﻌﺪاد أو اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﺑﺎﺳﺘﺨﺪام أﻣﺮ .Force
51
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
-ﰱ ﺣﺎﻟﻪ ﺗﻐﻴﲑ أى ﺧﺮج إﱃ 2#1ﻻ ﻳﻌﲎ أن إﻟﻐﺎء اﳊﺎﻟﺔ ﺳﻴﻜﻮن ﻋﻦ ﻃﺮﻳﻖ 2#0ﻷن ﰱ اﳊﺎﻟﺘﲔ
ﻻ ﺗﺮاﻋﻰ اﻷوﻟﻮﻳﺎت أو اﻟﺸﺮوط اﳋﺎﺻﺔ ﺑﺎﻟﱪﻧﺎﻣﺞ.
S2
K1M
N
52
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺒﺮﻧﺎﻣﺞ
اﻟﺨﻄﻮات:
أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ addressو ﰱ ﻫﺬا اﻟﺘﻤﺮﻳﻦ اﻟﻌﻨﻮان ﻫﻮ Q0.6 -
ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ formatﺣﺴﺐ اﻟـ addressو ﰱ ﻫﺬﻩ اﻟﺘﻤﺮﻳﻦ اﻟـ formatﻫﻮ bit -
ﻓﻘﻂ.
ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى 2#0ﻟﻺﻳﻘﺎف أو 2#1ﻟﻠﺘﺸﻐﻴﻞ. -
راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ forceﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ. -
53
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
ﻣﻼﺣﻈﺔ:
ﻹﻟﻐﺎء أﻣﺮ Forceاﻟﺬى ﰎ اﺳﺘﺨﺪاﻣﻪ ﰱ اﳌﺜﺎل اﻟﺴﺎﺑﻖ ﺗﻮﺟﺪ ﻃﺮﻳﻖ واﺣﺪة ﻓﻘﻂ وﻫﻰ:
-ﻹﻟﻐﺎء أﻣﺮ Forceﻳﺴﺘﺨﺪم أﻣﺮ Unforceدون ﻛﺘﺎﺑﺔ أى ﺷﻰء.
-أﻣﺮ Forceﺑﻘﻴﻤﺔ 2#0ﻟﻴﺲ ﻋﻜﺴﻬﺎ Forceﺑﻘﻴﻤﺔ 2#1و اﻟﻌﻜﺲ ﺻﺤﻴﺢ أﻳﻀﺎً وﻟﻜﻦ
ﻹﻟﻐﺎء أﻣﺮ Forceداﺋﻤﺎً وأﺑﺪاً ﻳﺴﺘﺨﺪم أﻣﺮ .Unforce
54
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
L
S3
OL
K2M K1M
K1M M2K
N
55
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺒﺮﻧﺎﻣﺞ:
اﻟﺨﻄﻮات:
-أوﻻً :ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳌﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ ﰱ addressو ﰱ ﻫﺬا اﻟﺘﻤﺮﻳﻦ اﻟﻌﻨﻮان ﻫﻮ Q0.2و
Q0.4
-ﺛﺎﻧﻴﺎً :ﻳﺘﻢ اﺧﺘﻴﺎر اﻟـ formatﺣﺴﺐ اﻟـ addressو ﰱ ﻫﺬا اﻟﺘﻤﺮﻳﻦ اﻟـ formatﻫﻮ bit
ﻓﻘﻂ.
ﺛﺎﻟﺜﺎً :ﺗﻜﺘﺐ اﳊﺎﻟﺔ اﳌﺮاد ﺗﻌﺪﻳﻠﻬﺎ أى 2#0ﻟﻺﻳﻘﺎف أو 2#1ﻟﻠﺘﺸﻐﻴﻞ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺨﺮﺟﲔ. -
راﺑﻌﺎً :ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ forceﻟﺘﻨﻔﻴﺬ اﻟﺘﻌﺪﻳﻞ اﳌﺮﻏﻮب ﻓﻴﻪ. -
ﻣﻼﺣﻈﺔ:
-ﻹﻟﻐﺎء أﻣﺮ Forceاﻟﺬى ﰎ اﺳﺘﺨﺪاﻣﻪ ﰱ اﳌﺜﺎل اﻟﺴﺎﺑﻖ ﺗﺘﻢ اﺳﺘﺨﺪام ﻧﻔﺲ اﻟﻄﺮﻳﻘﺔ اﻟﱴ ﰎ ﺷﺮﺣﻬﺎ
ﰱ ﻣﺎ ﺳﺒﻖ.
56
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
-ﻣﻦ اﻟﺸﻰء اﳌﻬﻢ ﺟﺪاً ﰱ اﻟـ forceأﻧﻪ ﳝﻜﻦ أن ﻳﻘﻮم ﺑﺘﻐﲑ أى ﺣﺎﻟﺔ دون ﻣﺮاﻋﺎة اﻟﺸﺮوط اﳌﻮﺟﻮدة
ﰱ اﻟﱪﻧﺎﻣﺞ ,ﻓﻤﺜﻼً اﻟﺘﻤﺮﻳﻦ اﻟﺴﺎﺑﻖ ﻫﻮ ﻋﺒﺎرة ﻋﻦ ﳏﺮك اﲡﺎﻫﲔ وﻣﻦ اﳌﻌﺮوف أﻧﺔ ﻻ ﳝﻜﻦ ﺗﺸﻐﻴﻞ
اﲡﺎﻫﲔ ﻣﻌﺎً ﻷن اﻟﺘﻤﺮﻳﻦ ﳛﺘﻮى ﻋﻠﻰ ﻧﻘﻂ ﻣﻐﻠﻘﺔ ﻣﻦ اﻟﻄﺮﻓﲔ وﻟﻜﻦ ﻳﺴﺘﻄﻴﻊ أﻣﺮ forceأن ﻳﻘﻮم
ﺑﺘﺸﻐﻴﻞ اﻻﲡﺎﻫﲔ ﻣﻌﺎً وﻫﺬا ﻳﻌﲎ أﻧﻪ ﺳﺘﺤﺪث "ﻗﻔﻠﺔ" ﻋﻠﻰ أﻃﺮاف اﶈﺮك.
-ﻧﻈﺮاً إﱃ أن أﻣﺮ forceﻣﻦ اﻷواﻣﺮ اﻟﱴ أذا أﻧﺴﻴﺖ ﻗﺪ ﺗﺴﺒﺐ اﳌﺸﺎﻛﻞ ﻓﺄﻧﺔ ﺗﻈﻬﺮ ﻋﻼﻣﺔ ﻗﻔﻞ
ﻣﻐﻠﻖ ﺑﺎﻟﻘﺮب ﻣﻦ اﻟﻌﻨﻮان اﻟﺬى ﰎ ﺗﻄﺒﻴﻖ أﻣﺮ forceﻋﻠﻴﻪ.
-أذا ﰎ ﺗﻄﺒﻴﻖ أﻣﺮ forceﺑﻘﻴﻤﺔ 2#1ﻋﻠﻰ اﳋﺮج Q0.0ﻓﺄﻧﻪ ﺳﻴﻌﻤﻞ ﻓﻘﻂ ﻫﺬا اﳋﺮج ,أى أﻧﺔ
أذا ﻛﺎن اﻟﱪﻧﺎﻣﺞ ﻗﺪ ﺻﻤﻢ ﲝﻴﺚ ﻋﻨﺪﻣﺎ ﻳﻌﻤﻞ ﻫﺬا اﳋﺮج ﻳﻌﻤﻞ أﻳﻀﺎً ﻣﻌﻪ ﻣﺆﻗﺖ زﻣﲎ ﻓﺄﻧﺔ ﻟﻦ
ﺳﻴﻌﻤﻞ ﻷن اﳋﺮج ﱂ ﻳﻌﻤﻞ ﺑﻄﺮﻳﻘﺔ ﻃﺒﻴﻌﻴﺔ ﺑﻞ ﻋﻤﻞ ﻋﻦ ﺑﻮاﺳﻄﺔ أﻣﺮ .force
57
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳊﺎﻻت
اﻟﺨﻄﻮات:
-١ﺗﻜﺘﺐ اﻟﻌﻨﺎوﻳﻦ اﳌﺮاد إﻇﻬﺎرﻫﺎ ﰱ "اﻟﺮﺳﻢ اﻟﺘﺨﻄﻴﻄﻰ" ﰱ ﺟﺪول اﳊﺎﻻت.
-٢ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ chart statusﳌﻌﺮﻓﺔ اﻟﻘﻴﻤﺔ اﳊﺎﻟﻴﺔ ﻟﻜﻞ ﻋﻨﻮان ﻣﻦ اﳋﻤﺴﺔ ﻋﻨﺎوﻳﻦ اﳌﺬﻛﻮرة ﰱ
اﳉﺪول.
-٣ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ trend viewﻟﺮأﻳﻪ اﻟﺮﺳﻢ اﻟﺘﺨﻄﻴﻄﻰ ﻟﻜﻞ ﻋﻨﻮان ﻣﻦ اﳋﻤﺴﺔ ﻋﻨﺎوﻳﻦ اﳌﺬﻛﻮرة ﰱ
اﳉﺪول.
58
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
اﻟﺒﺎب اﻟﺜﺎﻟﺚ
ﺟﺪول اﻟﺮﻣﻮز
• ﺷﺮح ﺟ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺪول اﻟﺮﻣﻮز.
59
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
60
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
-١ﻛﺘﺎﺑﺔ أى رﻣﺰ ﻳﻜﻮن ﺑﺎﻟﺼﺪﻓﺔ أﺳﻢ ﻣﻦ أﲰﺎء اﻟﻌﻤﻠﻴﺎت اﳌﺘﻌﺎرف ﻋﻠﻴﻬﺎ ﰱ اﻟﱪﳎﺔ.
-أى أﻧﻪ ﻻ ﳝﻜﻦ ﻛﺘﺎﺑﺔ ﻛﻠﻤﺔ )","ENI" ,"END" ,"LBL" ,"JMP" ,"R" ,"S" ,"stop
" ("CTUD" ,"CTD" ,"CTU" ,"TONR" ,"TOF" ,"TONﻷن ﻛﻞ ﻫﺬﻩ
اﻟﻜﻠﻤﺎت ﻫﻰ دوال ﻟﻌﻤﻠﻴﺎت ﺗﺴﺘﺨﺪم ﰱ اﻟﱪﳎﺔ ﻛﻤﺎ ﺳﻴﺘﻢ ﺷﺮﺣﻬﺎ ﻓﻴﻤﺎ ﺑﻌﺪ.
61
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
ﻣﻼﺣﻈﺔ:
:Symbolﺣﻴﺚ ﻳﻜﺘﺐ اﻟﺮﻣﺰ اﳋﺎص ﺑﻜﻞ ﻋﻨﻮان ﺑﺸﺮط ﻋﺪم ﺗﻜﺮار اﻟﺮﻣﺰ ﻣﻊ ﻋﻨﺎوﻳﻦ أﺧﺮى.
:Addressﺣﻴﺚ ﻳﻜﺘﺐ اﻟﻌﻨﻮان اﳋﺎص ﺑﺎﻟﱪﻧﺎﻣﺞ ﺑﺸﺮط أن ﻳﻜﻮن اﻟﻌﻨﻮان ﻣﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ ﺑﺎﻟﻔﻌﻞ.
:Commentﺣﻴﺚ ﺗﻜﺘﺐ اﳌﻼﺣﻈﺎت اﳋﺎص ﺑﻜﻞ ﻋﻨﻮان ﻣﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ.
-ﰱ ﺣﺎﻟﺔ ﻛﺘﺎﺑﺔ اى ﻋﻨﻮان ﻟﻴﺲ ﻣﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ ﻳﻈﻬﺮ رﻣﺰ <--
ﻣﻼﺣﻈﺔ:
:Symbolﺣﻴﺚ ﺗﻮﺟﺪ اﻟﺮﻣﻮز اﳋﺎﺻﺔ ﺑﺎﻟﺜﻼث أﻣﺎﻛﻦ اﳋﺎﺻﺔ ﺑﺼﻔﺤﺎت اﻟﱪﳎﺔ.
:Addressﺣﻴﺚ ﺗﻮﺟﺪ اﻟﻌﻨﺎوﻳﻦ اﳋﺎﺻﺔ ﺑﺎﻟﺜﻼث أﻣﺎﻛﻦ اﳋﺎﺻﺔ ﺑﺼﻔﺤﺎت اﻟﱪﳎﺔ.
:Commentﺣﻴﺚ ﺗﻮﺟﺪ اﳌﻼﺣﻈﺎت اﳋﺎﺻﺔ ﺑﺎﻟﺜﻼث أﻣﺎﻛﻦ اﳋﺎﺻﺔ ﺑﺼﻔﺤﺎت اﻟﱪﳎﺔ.
62
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
ﻣﻼﺣﻈﺔ:
-ﻻ ﳝﻜﻦ ﺗﻌﺪﻳﻞ اﻟﺮﻣﺰ أو اﻟﻌﻨﻮان أو اﻟﺘﻌﻠﻴﻘﺎت اﳋﺎﺻﺔ ﺑﺼﻔﺤﺎت اﻟﱪﳎﺔ اﻟﺜﻼﺛﺔ.
-ﰱ ﺣﺎﻟﺔ إﺿﺎﻓﺔ ﺻﻔﺢ أﺧﺮى ﺧﺎﺻﺔ ﺑﺎﻟﱪﳎﺔ ﻳﻀﺎف اﻟﺮﻣﺰ اﳋﺎص ﺎ ﺗﻠﻘﺎﺋﻴﺎ ﰱ ﺻﻔﺤﺔ "ﺟﺪول
اﻟﺮﻣﻮز".
63
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
اﻟﻄﺮﻳﻘﺔ اﻷوﻟﻰ:
اﻟﱪﳎﺔ ﺑﺎﺳﺘﺨﺪام اﻟﻌﻨﺎوﻳﻦ أوﻻً ﰒ إﻋﻄﺎء رﻣﺰ ﻟﻜﻞ ﻋﻨﻮان.
64
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
اﻟﻄﺮﻳﻘﺔ اﻟﺜﺎﻧﻴﺔ:
اﻟﱪﳎﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺮﻣﻮز أوﻻً ﰒ إﻋﻄﺎء ﻋﻨﻮان ﻟﻜﻞ رﻣﺰ.
65
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
ﺧﺼﺎﺋﺺ:
ﻟﻈﻬﻮر اﻟﺮﻣﻮز و اﻟﻌﻨﺎوﻳﻦ ﻣﻌﺎً أو ﻟﻈﻬﻮر
اﻟﺮﻣﻮز ﻓﻘﻂ ﺑﺪون اﻟﻌﻨﺎوﻳﻦ ﻳﺘﻢ اﻟﻀﻐﻂ
ﻋﻠﻰ toolsﰒ optionsﰒ اﻻﺧﺘﻴﺎر
ﺑﲔ اﻟﻨﻮﻋﲔ:
66
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
ﺑﻌﺪ اﻻﻧﺘﻬﺎء ﻣﻦ وﺿﻊ اﻟﺮﻣﻮز اﻟﺨﺎﺻﺔ ﺑﻜﻞ ﻋﻨﻮان ﻳﻤﻜﻦ إﻇﻬﺎر اﻟﺮﻣﻮز ﺑﺎﻟﻄﺮﻳﻘﺘﻴﻦ اﻟﺘﺎﻟﻴﺘﻴﻦ:
ﻣﻼﺣﻈﺔ:
-وﻳﺘﻢ ﺗﻄﺒﻴﻖ اﻟﻄﺮﻳﻘﺔ اﻷوﱃ ﺑﺎﺧﺘﻴﺎر Display Symbol Onlyوﻟﻜﻦ ﻻ ﻳﻔﻀﻞ ﻫﺬﻩ اﻟﻄﺮﻳﻘﺔ
ﺑﺴﺒﺐ اﻟﺘﺨﺒﻂ اﻟﺬى ﻳﻨﺘﺞ ﺑﺴﺒﺒﻬﺎ.
-وﻳﺘﻢ ﺗﻄﺒﻴﻖ اﻟﻄﺮﻳﻘﺔ اﻟﺜﺎﻧﻴﺔ ﺑﺎﺧﺘﻴﺎر Display Symbol And Addressوﻫﻰ اﻟﻄﺮﻳﻘﺔ
اﻷﻓﻀﻞ ﰱ ﻋﺮض اﻟﺮﻣﻮز وﺑﺎﻷﺧﺺ ﰱ اﻟﱪاﻣﺞ اﻟﱴ ﲢﺘﻮى ﻋﻠﻰ ﻋﺪد ﻛﺒﲑ ﻣﻦ أﻓﺮع اﻟﱪﳎﺔ
.network
-ﻳﺮﺟﻰ ﻋﺪم ﻛﺘﺎﺑﺔ رﻣﻮز ﺗﺘﻜﻮن ﻣﻦ أﺣﺮف ﻛﺜﲑة ﻟﺘﺠﻨﺐ اﻟﺘﺨﺒﻂ ﰱ ﺣﲔ ﺗﻄﺒﻴﻖ اﻟﺮﻣﻮز ﻋﻠﻰ اﻟﱪﻧﺎﻣﺞ
ﺑﺎﻟﻔﻌﻞ
67
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﻟﺮﻣﻮز
وﻣﻦ ﺿﻦ اﻷﻋﻤﺎل اﳍﺎﻣﺔ ﻟﺼﻔﺤﺔ "ﺟﺪول اﻟﺮﻣﻮز" أﺎ ﲢﺘﻮى ﻋﻠﻰ ﺟﺪول ﻓﻴﻪ ﻣﺌﺎت اﻟﻌﻨﺎوﻳﻦ اﳋﺎﺻﺔ ﺑﺎﻟﻌﻤﻠﻴﺎت
اﻷﻛﺜﺮ اﺳﺘﺨﺪاﻣﺎً ﺑﻞ وﻳﻮﺟﺪ أﻳﻀﺎ ﺗﻌﻠﻴﻖ ﺧﺎص ﺑﻜﻞ ﻋﻨﻮان ﻛﻤﺎ ﻫﻰ ﻣﻮﺿﺤﺎً ﺑﺎﻟﺼﻮرة اﻟﺘﺎﻟﻴﺔ و ﺳﻮف ﻳﺘﻢ ﺷﺮح
ﺑﻌﺾ اﻷﻣﺜﻠﺔ ﻣﻨﻬﺎ ﺑﺎﻟﻐﺔ اﻟﻌﺮﺑﻴﺔ ﰲ اﻟﻔﺼﻞ اﻟﺘﺎﺳﻊ ﺑﺎﻟﺘﻔﺼﻴﻞ
68
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
اﻟﺒﺎب اﻟﺮاﺑﻊ
ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
• ﺷﺮح ﺻﻔﺤﺔ اﻟﺒﻴـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺎﻧﺎت.
69
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
70
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
ﻣﻼﺣﻈﺔ:
-ﰱ ﺣﺎﻟﺔ ﻋﺪم ﻛﺘﺎﺑﺔ أى ﻗﻴﻤﺔ ﻣﺴﺒﻘﺔ ﻟﻠﻤﺘﻐﲑات ﻓﻬﺬا ﻳﻌﲎ أن اﻟﻘﻴﻤﺔ اﳊﺎﻟﻴﺔ ﻟﻠﻤﺘﻐﲑات ﺳﺘﻜﻮن ﺻﻔﺮ و ﻗﺪ
ﻳﺘﺴﺒﺐ ﻫﺬا ﰱ ﺑﻌﺾ اﳌﺸﺎﻛﻞ.
-ﳝﻜﻦ ﺗﻐﲑ ﻗﻴﻤﺔ أى ﻣﺘﻐﲑ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ "ﺟﺪول اﳊﺎﻻت" ﺣﱴ وﻟﻮ ﻛﺎن ﳍﺬا اﳌﺘﻐﲑ ﻗﻴﻤﺔ ﻣﺴﺒﻘﺔ ,وﻳﺘﻢ
ﻫﺬا ﺑﻮاﺳﻄﺔ أﻣﺮ write allأﻧﻈﺮ ﺻﻔﺤﺔ .٤٢
-ﻟﻜﺘﺎﺑﺔ ﺑﻌﺾ اﻟﺘﻌﻠﻴﻘﺎت ﳚﺐ إن ﺗﻜﺘﺐ ﰱ اﻟﺒﺪاﻳﺔ " "//ﰒ ﻳﻜﺘﺐ اﻟﺘﻌﻠﻴﻖ اﳌﺮاد ﻛﺘﺎﺑﺘﻪ.
-ﻟﻜﺘﺎﺑﺔ ﺑﻌﺾ اﳌﺘﻐﲑات ﳚﺐ إن ﻻ ﺗﻜﺘﺐ ﰱ اﻟﺒﺪاﻳﺔ " "//ﺑﻞ ﻳﻜﺘﺐ اﳌﺘﻐﲑ اﳌﺮاد ﻛﺘﺎﺑﺘﻪ دون أى
ﻣﻘﺪﻣﺎت.
-ﰱ ﺣﺎﻟﺔ ﻛﺘﺎﺑﺔ أى ﻣﺘﻐﲑات ﺑﻄﺮﻳﻘﺔ ﺧﻄﺎء أو ﻛﺘﺎﺑﺔ أى ﺗﻌﻠﻴﻖ دون " "//ﺗﻈﻬﺮ ﺗﻠﻘﺎﺋﻴﺎ ﻋﻼﻣﺔ " "Xﻟﻜﻰ
ﺗﺸﲑ إﱃ أﻧﻪ ﻗﺪ ﰎ ﻛﺘﺎﺑﺔ ﺷﻰء ﻏﲑ ﺻﺤﻴﺢ.
-اﻟﻄﺮﻳﻘﺔ اﻷﻓﻀﻞ ﻟﺘﻐﻴﲑ ﳏﺘﻮﻳﺎت اﳌﺘﻐﲑات ﺑﻮاﺳﻄﺔ اﻟﱪﻧﺎﻣﺞ ﺗﺘﻢ ﻋﻦ ﻃﺮﻳﻖ ﻋﻤﻠﻴﺎت اﻟﻨﻘﻞ ,أﻧﻈﺮ ﺻﻔﺤﺔ
٢٠٩ﰱ اﳉﺰء اﻷول ﻣﻦ اﻟﻜﺘﺎب.
71
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
• :Compile allﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح ﻳﻘﻮم اﻟﱪﻧﺎﻣﺞ ﲟﺮاﺟﻌﺔ ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت ﻹﻇﻬﺎر
اﻷﺧﻄﺎء أذا وﺟﺪت.
• :Downloadﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح ﻳﻘﻮم ﺑﺘﺤﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ ﻛﻤﺎ ﺳﺒﻖ و ﲢﻤﻴﻞ ﺻﻔﺤﺔ
اﻟﺒﻴﺎﻧﺎت أﻳﻀﺎً.
اﻟﺸﺮح:
:Network1ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﻳﻌﻤﻞ اﻟﺮﻳﻠﻴﻪ M0.0ﺑﺸﺮط أن ﻳﻜﻮن I0.0ﻣﻐﻠﻖ.
:Network2ﻳﻌﻤﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ T96ﻟﺰﻣﻦ ﻣﺘﻐﲑ ﺑﻘﻴﻤﺔ ﻣﺴﺒﻘﺔ ﺛﺎﻧﻴﺘﺎن ﰒ ﻳﻘﻒ ﻟﻴﺒﺪأ ﻣﻦ ﺟﺪﻳﺪ.
:Network3ﻳﻌﻤﻞ اﶈﺮك ﳝﻴﻨﺎً ﻟﺰﻣﻦ ﻣﺘﻐﲑ ﺑﻘﻴﻤﺔ ﻣﺴﺒﻘﺔ ﺛﺎﻧﻴﺘﺎن ﰒ ﻳﻘﻒ ﻟﺰﻣﻦ ﻣﺘﻐﲑ ﺑﻘﻴﻤﺔ ﻣﺴﺒﻘﺔ ﺛﺎﻧﻴﺘﺎن
أﻳﻀﺎً.
:Network4ﻳﻌﻤﻞ اﶈﺮك ﻳﺴﺎراً ﻟﺰﻣﻦ ﻣﺘﻐﲑ ﺑﻘﻴﻤﺔ ﻣﺴﺒﻘﺔ ﺛﺎﻧﻴﺘﺎن ﰒ ﻳﻘﻒ ﻟﺰﻣﻦ ﻣﺘﻐﲑ ﺑﻘﻴﻤﺔ ﻣﺴﺒﻘﺔ ﺛﺎﻧﻴﺘﺎن
أﻳﻀﺎً.
73
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
اﻟﺒﺮﻧﺎﻣﺞ:
74
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
ﺑﻞ ﳝﻜﻦ أﻳﻀﺎً ﺗﻐﲑ ﻗﻴﻢ اﳌﺘﻐﲑات ﻣﺮة أﺧﺮى ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ "ﺟﺪول اﳊﺎﻻت" ﺑﻮاﺳﻄﺔ أﻣﺮ .write all
75
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح Compile allﻳﻘﻮم اﻟﱪﻧﺎﻣﺞ ﲟﺮاﺟﻌﺔ ﺻﻔﺤﺔ اﻟﺒﻴﺎﻧﺎت ﻹﻇﻬﺎر اﻷﺧﻄﺎء أذا وﺟﺪت.
76
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
اﻟﺒﺎب اﻟﺨﺎﻣﺲ
ﺟﺪول اﻟﻤﺮﺟﻊ
• ﺷﺮح ﺟﺪول اﻟﻤ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺮﺟﻊ.
77
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
78
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
ﻣﻼﺣﻈﺔ:
ﰱ ﺣﺎﻟﻪ رﺳﻢ اﻟﱪﻧﺎﻣﺞ ﰒ ﻓﺘﺢ ﺻﻔﺤﺔ "ﺟﺪول اﳌﺮﺟﻊ" ﻣﺒﺎﺷﺮ دون ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ أو اﻟﻀﻐﻂ ﻋﻠﻰ
compileﺗﻈﻬﺮ ﻫﺬﻩ اﻟﺮﺳﺎﻟﺔ:
:Element-١ﺣﻴﺚ ﺗﻈﻬﺮ ﻛﻞ اﻟﻌﻨﺎوﻳﻦ اﻟﱴ اﺳﺘﺨﺪﻣﺖ ﰱ اﻟﱪﻧﺎﻣﺞ و أذا ﻗﺪ اﺳﺘﺨﺪم اﻟﻌﻨﻮان أﻛﺜﺮ ﻣﻦ
ﻣﺮة ﻓﺄﻧﻪ ﻳﻈﻬﺮ ﺑﻨﻔﺲ ﻋﺪد اﳌﺮات اﻟﱴ ﺗﻜﺮر ﺎ ﰱ اﻟﱪﻧﺎﻣﺞ.
79
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
:Context-٤ﺣﻴﺚ ﻳﻀﻴﻒ ﺑﻌﺾ اﻟﺘﻮﺿﻴﺤﺎت اﳋﺎﺻﺔ ﺑﺎﻟﻌﻨﻮان ,ﻓﻤﺜﻼً أذا ﻛﺎن اﻟﻌﻨﻮان ﻣﻔﺘﺎح ﻓﺄﻧﻪ ﻳﻮﺿﺢ
أذا ﻛﺎن ﻣﻔﺘﻮح أو ﻣﻐﻠﻖ أو ﻣﻔﺘﺎح ﻣﻘﺎرﻧﺔ ,أو أذا ﻛﺎن اﻟﻌﻨﻮان ﻫﻮ ﳌﺆﻗﺖ زﻣﲎ ﻓﺄﻧﻪ ﻳﻮﺿﺢ أذا ﻛﺎن ﻧﻮﻋﻪ
TONأو TOFأو ,TONRأو أذا ﻛﺎن اﻟﻌﻨﻮان ﻫﻮ ﻟﻌﺪاد ﻓﺄﻧﻪ ﻳﻮﺿﺢ أذا ﻛﺎن ﻧﻮﻋﻪ CTUأو
CTDأو CTUDوﻫﻜﺬا....
80
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
ﺣﻴﺚ ﻳﺴﺘﺨﺪم ﻹﻇﻬﺎر أﺳﻢ اﻟﻌﻨﺎوﻳﻦ اﻟﱴ ﻫﻲ ﻣﺜﻞ :اﻟﺪﺧﻞ ,اﳋﺮج ,اﻟﺮﻳﻠﻴﻪ أو اﳌﺘﻐﲑ .أى أﻧﻪ ﻳﺸﲑ إﱃ ﻋﻨﺎوﻳﻦ
ﲝﺠﻢ .bit
Compile allﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح أﻳﻀﺎً ﺗﺼﺒﺢ ﺻﻔﺤﺔ "ﺟﺪول اﳌﺮﺟﻊ" ﻣﺘﺎﺣﺔ.
:Downloadﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح ﻳﻘﻮم ﺑﺘﺤﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ ﻛﻤﺎ ﺳﺒﻖ و ﺷﺮﺣﻨﺎ و ﺗﺼﺒﺢ ﺻﻔﺤﺔ
"ﺟﺪول اﳌﺮﺟﻊ" ﻣﺘﺎﺣﺔ.
81
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
اﻟﺒﺮﻧﺎﻣﺞ:
82
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
اﻟﺸﺮح:
:Network1
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ I0.1ﻳﻌﻤﻞ اﻟﺮﻳﻠﻴﻪ M0.0ﺑﺸﺮط أن ﻳﻜﻮن I0.0ﻣﻐﻠﻖ.
:Network2
ﻳﻌﻤﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ T96ﳌﺪة ﲦﺎن ﺛﻮاﱏ ﰒ ﻳﻘﻒ ﻟﻴﺒﺪأ ﻣﻦ ﺟﺪﻳﺪ.
:Network3
ﻳﻌﻤﻞ اﶈﺮك ﳝﻴﻨﺎً ﳌﺪة ﺛﺎﻧﻴﺘﺎن )ﻣﻦ ﺻﻔﺮ إﱃ أﺛﻨﲔ( ﰒ ﻳﻘﻒ ﳌﺪة ﺛﺎﻧﻴﺘﺎن أﺧﺮﺑﺘﺎن )ﻣﻦ أﺛﻨﲔ إﱃ أرﺑﻌﺔ(.
:Network4
ﻳﻌﻤﻞ اﶈﺮك ﻳﺴﺎراً ﳌﺪة ﺛﺎﻧﻴﺘﺎن )ﻣﻦ أرﺑﻌﺔ إﱃ ﺳﺘﺔ( ﰒ ﻳﻘﻒ ﳌﺪة ﺛﺎﻧﻴﺘﺎن أﺧﺮﺑﺘﺎن )ﻣﻦ ﺳﺘﺔ إﱃ ﲦﺎﻧﻴﺔ(.
83
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
ﻣﻼﺣﻈﺔ:
⇐ ﲢﺘﻮى ﻫﺬﻩ اﻟﺼﻔﺤﺔ ﻋﻠﻰ ﻣﺴﻤﻴﺎت اﳌﺆﻗﺘﺎت اﻟﺰﻣﻨﻴﺔ اﳌﺴﺘﺨﺪﻣﺔ ﰱ اﻟﱪﻧﺎﻣﺞ ,ﲝﻴﺚ ﻳﻜﺘﺐ اﻻﺳﻢ
ﺑﻄﺮﻳﻘﺔ ﺧﺎﺻﺔ ﻓﺘﻜﺘﺐ ﻣﺴﻤﻴﺎت اﳌﺆﻗﺘﺎت ﺑﺪاﻳﺎً ﻣﻦ ﺻﻔﺮ إﱃ أن ﻳﺼﻞ إﱃ أﺳﻢ اﳌﺆﻗﺖ اﳌﺴﺘﺨﺪم
ﻓﻌﻼً و ﺗﺸﲑ أﻳﻀﺎً إﱃ أﻧﻪ أﺳﺘﺨﺪم اﻟﺮﻳﻠﻴﻪ اﻷول.
⇐ ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ذاﻛﺮة "ﻣﺘﻐﲑات" ﲝﺠﻢ wordﻣﺜﻼً ﻓﺄﻧﻪ ﻳﺘﻢ اﻹﺷﺎرة إﱃ اﻟـ bytesاﳌﻜﻮﻧﺔ ﳍﺬا
اﻟـ wordﻓﻤﺜﻼً أذا ﻛﺎن اﳌﺘﻐﲑ اﳌﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ ﻫﻮ VW4ﻓﺄﻧﺔ ﻳﺸﲑ إﱃ ﻫﺬﻩ اﻟﺬاﻛﺮة
داﺧﻞ ﺻﻔﺤﺔ "ﺟﺪول اﳌﺮﺟﻊ" ﺑﻮاﺳﻄﺔ ﻛﺘﺎﺑﺔ ﺣﺮف اﻟـ Wأﻣﺎم اﻟـ byte4واﻟـ byte5ﻟﻴﺸﲑ إﱃ
أﻧﺔ ﰎ اﺳﺘﺨﺪام اﻟـ byte4واﻟـ byte5وﻟﻜﻦ ﻋﻦ ﻃﺮﻳﻖ اﻟـ .word4
84
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺟﺪول اﳌﺮﺟﻊ
⇐ ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ذاﻛﺮة "ﻣﺘﻐﲑات" ﲝﺠﻢ Dwordﻣﺜﻼً ﻓﺄﻧﻪ ﻳﺘﻢ اﻹﺷﺎرة إﱃ اﻟـ bytesاﳌﻜﻮﻧﺔ
ﳍﺬا اﻟـ Dwordﻓﻤﺜﻼً أذا ﻛﺎن اﳌﺘﻐﲑ اﳌﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ ﻫﻮ VD0ﻓﺄﻧﺔ ﻳﺸﲑ إﱃ ﻫﺬﻩ
اﻟﺬاﻛﺮة داﺧﻞ ﺻﻔﺤﺔ "ﺟﺪول اﳌﺮﺟﻊ" ﺑﻮاﺳﻄﺔ ﻛﺘﺎﺑﺔ ﺣﺮف اﻟـ Dأﻣﺎم اﻟـ byte0واﻟـ byte1واﻟـ
byte2واﻟـ byte3ﻟﻴﺸﲑ إﱃ أﻧﺔ ﰎ اﺳﺘﺨﺪام ﻛﻞ ﻫﺬﻩ اﻟـ bytesوﻟﻜﻦ ﻋﻦ ﻃﺮﻳﻖ اﻟـ
.Dword0
ﻫﺬﻩ اﻟﺼﻔﺤﺔ ﺗﺸﲑ إﱃ ﻛﻞ اﻟﻌﻨﺎوﻳﻦ اﻟﱴ اﺳﺘﺨﺪﻣﺖ ﰱ اﻟﱪﻧﺎﻣﺞ ﺑﺸﺮط أن ﺗﻜﻮن ﲝﺠﻢ ,bitﻣﺜﻞ:
Q0.2 ,Q0.1 ,I0.1 ,I0.0و M0.0
85
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
اﻟﺒﺎب اﻟﺴﺎدس
اﻟﺒﺮاﻣﺞ اﻟﻔﺮﻋﻴﺔ
• ﺷﺮح اﻟﺒﺮاﻣـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﺞ اﻟﻔﺮﻋﻴﺔ.
87
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
اﻟﺤﺎﻟﺔ اﻷوﻟﻰ:
-ﰱ ﺣﺎﻟﻪ وﺟﻮد ﻧﻈﺎم اﻹﻧﺬارات اﳋﺎص ﺑﻜﻞ ﻣﻜﻴﻨﺔ ﻓﺄن اﻹﻧﺬارات ﺗﻌﻤﻞ ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ﺣﱴ ﻣﻊ
اﺧﺘﻼف اﳌﺎﻛﻴﻨﺎت .
-ﰱ ﺣﺎﻟﺔ وﺟﻮد ﳌﺒﺎت أﺷﺎرة ﺗﻀﻰء ﻣﻊ ﻛﻞ ﳏﺮك ﻓﺄن ﳌﺒﺎت ﺗﻌﻤﻞ ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ﺣﱴ ﻣﻊ اﺧﺘﻼف
اﶈﺮﻛﺎت.
88
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
-ﰱ ﺣﺎﻟﻪ وﺟﻮد ﻓﻼﺷﺮ ﻳﻀﺎء ﺣﺴﺐ ﺷﺮوط ﺧﺎﺻﺔ ﻓﺄن اﻟﻔﻼﺷﺮ ﻳﻌﻤﻞ ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ﺣﱴ ﻣﻊ
اﺧﺘﻼف اﻟﺸﺮوط .
ﻣﻼﺣﻈﺔ:
أى أﻧﺔ ﻣﺜﻼً ﺑﺪﻻً ﻣﻦ ﺗﻜﺮار أى ﺟﺰء ﻋﺸﺮة ﻣﺮات ﻓﺄﻧﺔ ﻳﺮﺳﻢ ﻣﺮة واﺣﺪة ﻓﻘﻂ وﻟﻜﻦ ﻳﺘﻢ أﻋﻄﺎء ﻫﺬا
اﳉﺰء ﻋﺸﺮة ﻋﻨﺎوﻳﻦ ﳐﺘﻠﻔﺔ ﻛﻤﺎ ﻟﻮ ﻛﺎن ﻣﺮﺳﻮم ﻋﺸﺮة ﻣﺮات ﻓﻌﻼً.
اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ:
-ﰱ ﺣﺎﻟﻪ وﺟﻮد ﺑﺮﻧﺎﻣﺞ ﻤﻮﻋﺔ ﻣﺎﻛﻴﻨﺎت ﳐﺘﻠﻔﺔ ﻓﺄﻧﺔ ﻳﻔﻀﻞ اﺳﺘﺨﺪام ﺻﻔﺤﺎت ﳐﺘﻠﻔﺔ ﻟﻜﻞ ﻣﻜﻴﻨﺔ
ﺣﻴﺚ أﻧﻪ ﺑﺘﻘﺴﻴﻢ اﻟﱪﻧﺎﻣﺞ ﻳﺴﻬﻞ ﻋﻠﻰ اﳌﱪﻣﺞ اﻟﺘﻮﺻﻞ ﻟﺴﺒﺐ اﻷﻋﻄﺎل ﺑﺴﻬﻮﻟﺔ وﰱ وﻗﺖ ﻗﺼﲑ.
-أوﻻً ﻳﺘﻢ رﺳﻢ اﳉﺰء اﻟﺬى ﻛﺎن ﻣﻦ اﳌﻔﺮوض أن ﻳﺘﻜﺮر داﺧﻞ ﺻﻔﺤﺔ " اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ " وﻟﻜﻦ ﻣﺮة
واﺣﺪة ﻓﻘﻂ ودون أﻋﻄﺎء أى ﻋﻨﺎوﻳﻦ ﳏﺪدة.
89
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
-ﺛﺎﻧﻴﺎً ﻳﺘﻢ ﲢﺪﻳﺪ ﻛﻞ اﳌﺴﻤﻴﺎت اﻟﱴ ﺳﻮف ﺗﺴﺘﺨﺪم ﰱ اﻟﱪﻧﺎﻣﺞ اﻟﻔﺮﻋﻰ داﺧﻞ اﳉﺪول اﳋﺎص ﺑﺎﻟﱪاﻣﺞ
اﻟﻔﺮﻋﻴﺔ ﻣﻊ ﲢﺪﻳﺪ أذا ﻛﺎن ﻫﺬا اﻻﺳﻢ ﻫﻮ ﻟﺪﺧﻞ أو ﳋﺮج أو .......
90
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
-ﺛﺎﻟﺜﺂ ﻳﺘﻢ ﻛﺘﺎﺑﺔ اﻷﺳﻢ اﻟﺬى ﰎ ﲢﺪﻳﺪة ﰱ اﻟﱪﻧﺎﻣﺞ ﺑﺪل اﻟﻌﻨﻮان و اﳍﺪف ﻣﻦ ﻫﺬا أﻧﺔ أذا ﻛﺘﺒﻨﺎ ﻋﻨﻮان
ﻓﻬﺬا ﻳﻌﲎ أﻧﺔ ﰎ اﺧﺘﻴﺎر اﻟﻌﻨﻮان إﱃ اﻷﺑﺪ وﻟﻜﻦ ﰱ ﺣﺎﻟﻪ ﻛﺘﺎﺑﺔ أى رﻣﺰ ﻓﺄﻧﺔ ﳝﻜﻦ ﺑﻜﻞ ﺳﻬﻮﻟﻪ ﰱ ﻣﺎ
ﺑﻌﺪ أﻋﻄﺎء ﻋﻨﺎوﻳﻦ ﳐﺘﻠﻔﺔ ﻟﻨﻔﺲ اﻟﺮﻣﺰ.
-راﺑﻌﺎً ﻳﺘﻢ اﻻﺗﺼﺎل ﺑﺼﻔﺤﺔ "اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ" ﻋﻦ ﻃﺮﻳﻖ أﻣﺮ CALL_SUBاﻟﺬى ﻳﻮﺟﺪ ﰱ
ﺻﻔﺤﺔ "اﻟﱪﻧﺎﻣﺞ اﻟﺮﺋﻴﺴﻴﺔ" ﻣﻊ ﲢﺪﻳﺪ اﻟﻌﻨﻮان اﻟﺬى ﺳﻴﺤﻞ ﳏﻞ اﻟﺮﻣﺰ.
91
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
92
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﳏﺮﻛﲔ ﻳﻌﻤﻞ ﻛﻞ ﳏﺮك ﰱ اﲡﺎﻫﲔ ﲝﻴﺚ أن ﻣﻊ ﻛﻞ أﲡﺎة ﺗﻌﻤﻞ ﳌﺒﺘﺎن ﻛﻔﻼﺷﺮ ﺑﺸﺮط أن اﻟﻠﻤﺒﺎت
اﳋﺎﺻﺔ ﺑﺎﻷﲡﺎة اﻟﻴﻤﲔ ﳐﺘﻠﻔﺔ ﻋﻦ اﻟﻠﻤﺒﺎت اﳋﺎﺻﺔ ﺑﺎﻻﲡﺎﻩ اﻟﻴﺴﺎر و اﻟﻠﻤﺒﺎت اﳋﺎﺻﺔ ﺑﺎﶈﺮك اﻷول
ﳐﺘﻠﻔﺔ ﻋﻦ اﶈﺮك اﻟﺜﺎﱏ.
المداخل
93
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
المؤقتات الزمنية
المخارج
94
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ اﻟﺮﺋﻴﺴﻰ:
95
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
96
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
اﻟﺒﺮﻧﺎﻣﺞ اﻟﻔﺮﻋﻰ:
97
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱪاﻣﺞ اﻟﻔﺮﻋﻴﺔ
ﻣﻼﺣﻈﺔ.
ﺑﺎﺳﺘﺨﺪام اﻟـ subroutineأﺻﺒﺢ ﻋﺪد اﻟﻔﺮوع ۱٢ﺑﺪﻻً ﻣﻦ ٢٠
98
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
اﻟﺒﺎب اﻟﺴﺎﺑﻊ
اﻟﺒﻮاﺑﺎت
• ﺷﺮح اﻟﺒﻮاﺑ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺎت.
• ﺗﻤ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺎرﻳﻦ ﻋﻤﻠﻴﺔ.
99
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
اﻟﺒﻮاﺑﺎت اﻟﻤﻨﻄﻘﻴﺔ:
أﻧﻮاع اﻟﺒﻮاﺑﺎت:
,WAND_W ,WAND_B ,INV_DW ,INV_W ,INV_B
,WXOR_B ,WOR_DW ,WOR_W ,WOR_B ,WAND_DW
.WXOR_DW ,WXOR_W
100
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﺑﻮاﺑﺎت ":"AND
ﺗﻘﻮم ﺑﺘﻄﺒﻴﻖ اﻟﺒﻮاﺑﺔ اﳌﻨﻄﻘﻴﺔ "و" ﺑﲔ ﳎﻤﻮﻋﺘﲔ و ﺗﺘﻮاﺟﺪ ﻫﺬﻩ اﻟﻌﻤﻠﻴﺔ ﲝﺠﻢ Word ,Byteو
.Dword
ﺑﻮاﺑﺎت ":"OR
ﺗﻘﻮم ﺑﺘﻄﺒﻴﻖ اﻟﺒﻮاﺑﺔ اﳌﻨﻄﻘﻴﺔ "أو" ﺑﲔ ﳎﻤﻮﻋﺘﲔ و ﺗﺘﻮاﺟﺪ ﻫﺬﻩ اﻟﻌﻤﻠﻴﺔ ﲝﺠﻢ Word ,Byteو
Dword
101
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﺑﻮاﺑﺎت ":"XOR
ﺗﻘﻮم ﺑﺘﻄﺒﻴﻖ اﻟﺒﻮاﺑﺔ اﳌﻨﻄﻘﻴﺔ " "XORﺑﲔ ﳎﻤﻮﻋﺘﲔ و ﺗﺘﻮاﺟﺪ ﻫﺬﻩ اﻟﻌﻤﻠﻴﺔ ﲝﺠﻢ ,Byte
Wordو .Dword
ﺷﺮح اﻟﺒﻮاﺑﺎت:
بوابات :INV
Input Output
A )INV(A
1 0
0 1
102
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
بوابات :AND
Input Output
بوابات :OR
Input Output
اﻟﺒﻮاﺑﺔ "أو" :ﺗﺼﺒﺢ اﻟﻘﻴﻤﺔ واﺣﺪ ﻋﻨﺪﻣﺎ ﺗﺘﺤﻘﻖ ﻗﻴﻤﺔ واﺣﺪة أو ﻛﻞ اﻟﻘﻴﻢ.
103
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
بوابات :XOR
Input Output
بوابات :NAND
Input Output
اﻟﺒﻮاﺑﺔ "ﻧﺎﻧﺪ" :ﺗﺼﺒﺢ اﻟﻘﻴﻤﺔ واﺣﺪ ﰱ ﲨﻴﻊ اﻷﺣﻮال ﻣﺎﻋﺪا ﰱ ﺣﺎﻟﺔ اﻟﻮﺣﺎﻳﺪ.
104
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
بوابات :NOR
Input Output
اﻟﺒﻮاﺑﺔ "ﻧﻮر" :ﺗﺼﺒﺢ اﻟﻘﻴﻤﺔ ﺻﻔﺮ ﰱ ﲨﻴﻊ اﻷﺣﻮال ﻣﺎﻋﺪا ﰱ ﺣﺎﻟﺔ اﻷﺻﻔﺎر.
بوابات :XNOR
Input Output
اﻟﺒﻮاﺑﺔ "أﻛﺴﻨﻮر" :ﺗﺼﺒﺢ اﻟﻘﻴﻤﺔ واﺣﺪ ﰱ ﺣﺎﻟﺔ ﺗﺸﺎﺑﻪ اﻟﻘﻴﻢ ﻓﻘﻂ أى ﰱ ﺣﺎﻟﺔ اﻟﻮﺣﺎﻳﺪ واﻷﺻﻔﺎر.
105
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﻻ ﺗﻮﺟﺪ ﺑﻮاﺑﺎت ﻣﺒﺎﺷﺮة ﺑﺄﺳﻢ ,NANDأو ,NORأو XORﻷﻧﻪ ﳝﻜﻦ اﻟﺘﻮﺻﻞ إﻟﻴﻬﺎ ﺑﺎﺳﺘﺨﺪام
اﻟﺒﻮاﺑﺎت ANDأو ORأو XORﻣﻊ اﻟﺒﻮاﺑﺔ .INV
اﻟﺸﺮح:
ﻳﻘﻮم INV_Bﺑﻌﻜﺲ
ﳏﺘﻮﻳﺎت اﻟـ Bitﻣﻦ اﻟـ
INV_B ١
Byte INإﱃ اﻟـ Byte
.OUT
ﻳﻘﻮم INV_Wﺑﻌﻜﺲ
ﳏﺘﻮﻳﺎت اﻟـ Bitﻣﻦ اﻟـ
INV_W ٢
Word INإﱃ اﻟـ
.Word OUT
ﻳﻘﻮم INV_DWﺑﻌﻜﺲ
ﳏﺘﻮﻳﺎت اﻟـ Bitﻣﻦ اﻟـ
INV_DW ٣
Dword INإﱃ اﻟـ
.Dword OUT
ﻳﻘﻮم AND_Bﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "و" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ WAND_B ٤
Bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Byte
106
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﻳﻘﻮم AND_Wﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "و" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ
Bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Word WAND_W ٥
IN1و ﳏﺘﻮﻳﺎت اﻟـ Bits
اﳋﺎﺻﺔ ﺑﺎﻟـ .Word IN2
ﻳﻘﻮم AND_DWﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "و" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ
ﺑﺎﻟـ اﳋﺎﺻﺔ Bits
WAND_DW ٦
و Dword IN1
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
ﺑﺎﻟـ .Dword IN2
ﻳﻘﻮم WOR_Bﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "أو" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ
Bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Byte WOR_B ٧
IN1و ﳏﺘﻮﻳﺎت اﻟـ Bits
اﳋﺎﺻﺔ ﺑﺎﻟـ .Byte IN2
107
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﻳﻘﻮم WOR_Wﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "أو" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ
Bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Word WOR_W ٨
IN1و ﳏﺘﻮﻳﺎت اﻟـ Bits
اﳋﺎﺻﺔ ﺑﺎﻟـ .Word IN2
ﻳﻘﻮم WOR_DWﺑﺘﻨﻔﻴﺬ
ﻋﻤﻠﻴﺔ "أو" ﺑﲔ ﳏﺘﻮﻳﺎت اﻟـ
ﺑﺎﻟـ اﳋﺎﺻﺔ Bits
WOR_DW ٩
و Dword IN1
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
ﺑﺎﻟـ .Dword IN2
ﻳﻘﻮم WXOR_Bﺑﺘﻨﻔﻴﺬ
ﺑﲔ "أﻛﺴﻮر" ﻋﻤﻠﻴﺔ
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
WXOR_B ١٠
ﺑﺎﻟـ Byte IN1و ﳏﺘﻮﻳﺎت
اﻟـ Bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Byte
.IN2
ﻳﻘﻮم WXOR_Wﺑﺘﻨﻔﻴﺬ
ﺑﲔ "أﻛﺴﻮر" ﻋﻤﻠﻴﺔ
WXOR_W ١١
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
ﺑﺎﻟـ Word IN1و
108
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
WXOR_DW ﻳﻘﻮم
ﺑﺘﻨﻔﻴﺬ ﻋﻤﻠﻴﺔ "أﻛﺴﻮر" ﺑﲔ
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
WXOR_DW ١٢
ﺑﺎﻟـ Dword IN1و
ﳏﺘﻮﻳﺎت اﻟـ Bitsاﳋﺎﺻﺔ
ﺑﺎﻟـ .Dword IN2
ﻣﺜﺎل:
ﲤﺮﻳﻦ ﺑﺎﺳﺘﺨﺪام .INV_B
VB0
1 0 1 0 0 0 1 1
VB5
0 1 0 1 1 1 0 0
109
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﻣﺜﺎل:
ﲤﺮﻳﻦ ﺑﺎﺳﺘﺨﺪام .INV_W
VW2
0 1 1 1 0 1 0 0 1 0 0 1 0 1 1 1
VW4
1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 0
ﻣﺜﺎل:
ﲤﺮﻳﻦ ﺑﺎﺳﺘﺨﺪام .WAND_B
110
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
VB0 VB1
VB2
1 0 0 0 0 0 1 1
ﻣﺜﺎل:
ﲤﺮﻳﻦ ﺑﺎﺳﺘﺨﺪام .WXOR_B
VB5 VB7
VB10
1 0 0 1 0 1 1 1
111
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺒﻮاﺑﺎت
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻗﻢ ﺑﺘﻨﻔﻴﺬ داﺋﺮة ﲢﻜﻢ ﻣﻨﻄﻘﻴﺔ ﶈﺮك ﻳﻌﻤﻞ ﺑﺸﺮط أن ﺗﻜﻮن ﺣﺎﻟﺔ اﳌﻔﺎﺗﻴﺢ ﻛﺎﻷﺗﻰ:
:Network1
ﻳﺘﻢ ﺗﻄﺒﻴﻖ اﻟﻌﻤﻠﻴﺔ " "XORﺑﲔ IB0و 2#1001-1110و وﺿﻊ اﻟﻨﺘﻴﺠﺔ ﰱ VB0
:Network2
ﺗﻌﻤﻞ Q0.0أذا ﻛﺎﻧﺖ ﻗﻴﻤﺔ VB0ﻫﻰ .2#1111-1111
112
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
اﻟﺒﺎب اﻟﺜﺎﻣﻦ
اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
• ﺷﺮح اﻟﻨﻈـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﻢ اﻟﻌﻤﻠﻴﺔ.
113
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
ﺗﺴﺘﺨﺪم ﺻﻔﺤﺔ "اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ" اﻟـ System Blockﻟﺘﺤﺪﻳﺪ ﺑﻌﺾ اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﺑﺎﻟﱪﻧﺎﻣﺞ واﻟﱴ
ﳝﻜﻦ ﳍﺎ أن ﺗﻐﲑ ﰱ ﻃﺒﻴﻌﺔ ﻋﻤﻞ اﻟﱪﻧﺎﻣﺞ ﻣﻦ ﺣﻴﺚ ﻃﺮﻳﻘﺔ اﻟﺘﺸﻐﻴﻞ.
-ﻳﺘﻢ ﻋﻤﻞ اﻟﱪﻧﺎﻣﺞ أوﻻً وﻟﻜﻦ ﻗﺒﻞ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ ﻳﺘﻢ ﲢﺪﻳﺪ
اﳌﺘﻐﲑات ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ " اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ " وﺑﻌﺪ ذاﻟﻚ ﻳﺘﻢ
ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
ﻣﻼﺣﻈﺔ:
114
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
:Download
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح ﻳﺘﻢ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ ﻛﻤﺎ ﺳﺒﻖ و ﺷﺮﺣﻨﺎ و ﺗﺼﺒﺢ ﲨﻴﻊ اﳌﺘﻐﲑات اﶈﺪدة
ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ "اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ" ﻣﺘﺎﺣﺔ.
Compile all
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻫﺬا اﳌﻔﺘﺎح ﺗﻈﻬﺮ ﻋﺪد اﻷﻋﻄﺎل اﳋﺎﺻﺔ ﺑﺎﻟﱪﻧﺎﻣﺞ ﻟﻜﻰ ﻳﺘﻢ ﲡﻨﺒﻬﺎ ﻗﺒﻞ ﺗﻄﺒﻴﻖ أﻣﺮ
اﻟﺘﺤﻤﻴﻞ.
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ compile allﺗﻈﻬﺮ ﻫﺬﻩ اﻟﺮﺳﺎﻟﺔ اﻟﱴ ﺗﻮﺿﺢ اﻷﺧﻄﺎء إذا وﺟﺪت:
115
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Gap Update Factorﻫﻰ اﻟﻔﺮاﻏﺎت ﺑﲔ وﺣﺪات اﻟـ PLCوﻳﻔﻀﻞ ﺑﺄن ﻳﻜﻮن
ﻋﺪد ﻟﻴﺲ ﺑﻜﺒﲑ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Defaultﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﺑﺼﻔﺤﺔ Communication Ports
ﻓﻘﻂ إﱃ ﻃﺒﻴﻌﺘﻬﺎ.
-١٠اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١١اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١٢اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ System Blockإﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
-١٣اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Communication
Portsﻓﻘﻂ.
-١٤ﻟﺘﻔﻌﻴﻞ أى ﻣﻦ اﳌﺘﻐﲑات اﻟﱴ ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ Communication Ports
ﳚﺐ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
117
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
118
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٧اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Defaultﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﺑﺼﻔﺤﺔ Retentive Rangesﻓﻘﻂ إﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Retentive Ranges
ﻓﻘﻂ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١٠اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١١اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ Retentive
Rangesإﱃ ﻃﺒﻴﻌﺘﻬﺎ.
-١٢ﻟﺘﻔﻌﻴﻞ أى ﻣﻦ اﳌﺘﻐﲑات اﻟﱴ ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ Retentive Rangesﳚﺐ
ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
119
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٣صفحة .Password
ﺗﺴﺘﺨﺪم ﻫﺬﻩ اﻟﺼﻔﺤﺔ ﻟﻮﺿﻊ ﻛﻠﻤﺔ ﻣﺮور ﻟﺘﺤﺪﻳﺪ ﺑﻌﺾ اﻷﻋﻤﺎل.
121
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
122
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
123
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Output Tables
ANALOGﻓﻘﻂ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١٠اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١١اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ System blockإﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
-٤اﳌﻘﺼﻮد ﺑﻪ ﳎﻤﻮﻋﺔ ﻣﻦ اﳌﺪﺧﻼات اﻟﱴ ﺳﻮف ﻳﻄﺒﻖ ﻋﻠﻴﻬﺎ أﻣﺮ .Input Filter
-٥اﳌﻘﺼﻮد ﺑﻪ اﻟﺰﻣﻦ اﳌﺮاد ﺗﻄﺒﻴﻘﻪ.
-٦ﻟﺘﻔﻌﻴﻞ أى ﻣﻦ اﳌﺘﻐﲑات اﻟﱴ ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ Input Filters DIGITAL
ﳚﺐ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-٧اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Defaultﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﺑﺼﻔﺤﺔ Input Filters DIGITAL
ﻓﻘﻂ إﱃ ﻃﺒﻴﻌﺘﻬﺎ.
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Input Filters
DIGITALﻓﻘﻂ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١٠اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١١اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ System blockإﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
125
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
ﺗﺴﺘﺨﺪم ﻫﺬﻩ اﻟﺼﻔﺤﺔ ﻟﻠﺘﺤﺪﻳﺪ اﳌﺴﺒﻖ ﻟﻘﻴﻤﺔ اﻹﺷﺎرة اﳋﺎﺻﺔ ﺑﺎﳌﺪﺧﻼات اﻟﺘﻨﺎﻇﺮﻳﺔ.
126
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-١٠ﻟﺘﻔﻌﻴﻞ أى ﻣﻦ اﳌﺘﻐﲑات اﻟﱴ ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ Input Filters ANALOG
ﳚﺐ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١١اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Input Filters
ANALOGﻓﻘﻂ.
-١٢اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-١٣اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١٤اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ Input Filters
ANALOGإﱃ ﻃﺒﻴﻌﺘﻬﺎ.
127
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
128
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
129
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
130
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٣اﳌﻘﺼﻮد ﺑﻪ ﻫﻮ أﻧﻪ ﺳﻮف ﺗﻀﻰء ﳌﺒﺔ اﻷﻋﻄﺎل ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام أﻣﺮ .Force
-٤اﳌﻘﺼﻮد ﺑﻪ ﻫﻮ أﻧﻪ ﺳﻮف ﺗﻀﻰء ﳌﺒﺔ اﻷﻋﻄﺎل ﰱ ﺣﺎﻟﺔ وﺟﻮد أﻋﻄﺎل ﺧﺎﺻﺔ ﺑﺎﳌﺪاﺧﻼت أو ﺑﺎﳌﺨﺮﺟﺎت.
-٥ﻟﺘﻔﻌﻴﻞ أى ﻣﻦ اﳌﺘﻐﲑات اﻟﱴ ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻘﻬﺎ ﺑﻮاﺳﻄﺔ ﺻﻔﺤﺔ Configure LEDﳚﺐ ﲢﻤﻴﻞ
اﻟﱪﻧﺎﻣﺞ.
-٦اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Helpﻫﻰ ﺻﻔﺤﺔ ﻟﻠﺘﻮﺿﻴﺢ و اﳌﺴﺎﻋﺪة ﺧﺎﺻﺔ ﺑﺼﻔﺤﺔ Configure LED
ﻓﻘﻂ.
-٧اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ System blockإﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
132
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
133
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻨﻈﻢ اﻟﻌﻤﻠﻴﺔ
-٨اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Okﻫﻮ ﺗﻔﻌﻴﻞ ﲨﻴﻊ اﳌﺘﻐﲑات اﻟﱴ ﻧﻔﺬت و ﻟﻜﻦ ﺑﻌﺪ ﲢﻤﻴﻞ اﻟﱪﻧﺎﻣﺞ.
-٩اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Cancelﻫﻮ إﻟﻐﺎء اﻟﺘﻌﺪﻳﻼت و ﻏﻠﻖ اﻟﺼﻔﺤﺔ.
-١٠اﳌﻘﺼﻮد ﺑﻜﻠﻤﺔ Default Allﻫﻰ أﻋﺎدة اﳌﺘﻐﲑات اﳋﺎﺻﺔ ﲜﻤﻴﻊ ﺻﻔﺢ System blockإﱃ
ﻃﺒﻴﻌﺘﻬﺎ.
134
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﺒﺎب اﻟﺘﺎﺳﻊ
اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ
• ﺷﺮح اﻟﺮﻳﻠﻴﻬـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺎت اﻟﺨﺎﺻﺔ.
135
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ:
ﺗﻌﺘﱪ اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ ﻫﻰ ﻋﺒﺎر ﻋﻦ ذاﻛﺮة ﺧﺎﺻﺔ داﺧﻞ وﺣﺪة اﻟـ PLCﺗﻌﻤﻞ ﺑﻄﺮق ﳐﺘﻠﻔﺔ ﻣﻘﺎرﻧﺔ
ﺑﻄﺮق ﻋﻤﻞ اﻟﺮﻳﻠﻴﻬﺎت اﻟﺪاﺧﻠﻴﺔ اﻟﻌﺎدﻳﺔ.
ﺗﻌﻤﻞ ﺣﺴﺐ ﺷﺮوط وﺿﻌﺖ ﰱ اﻟﻮﺣﺪة وﻏﲑ ﺗﻌﻤﻞ ﺣﺴﺐ ﺷﺮوط وﺿﻌﺖ ﰱ ۱ﻛﻴﻔﻴﺔ اﻟﻌﻤﻞ
ﻗﺎﺑﻠﺔ ﻟﻠﺘﻌﺪﻳﻞ اﻟﱪﻧﺎﻣﺞ
ﺗﻘﻒ ﺣﺴﺐ ﺷﺮوط وﺿﻌﺖ ﰱ اﻟﻮﺣﺪة وﻏﲑ ﺗﻘﻒ ﺣﺴﺐ ﺷﺮوط وﺿﻌﺖ ﰱ ٢ﻛﻴﻔﻴﺔ
ﻗﺎﺑﻠﺔ ﻟﻠﺘﻌﺪﻳﻞ اﻟﱪﻧﺎﻣﺞ اﻹﻳﻘﺎف
ﺗﻌﻤﻞ اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ أى اﻟﺮﻳﻠﻴﻬﺎت اﳌﱪﳎﺔ ﺑﻄﺮﻳﻘﺔ ﳏﺪدة ﻣﺴﺒﻘﺎً ﻣﻦ ﻗﺒﻞ وﺣﺪة اﻟﱪﳎﺔ ,ﻓﻤﺜﻼً ﺗﻮﺟﺪ:
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﻣﺮة ﻛﻞ ﻧﺼﻒ ﺛﺎﻧﻴﺔ.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﳌﺮة واﺣﺪة ﻓﻘﻂ.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﻣﺮة ﻛﻞ دورة ﻟﻠﱪﻧﺎﻣﺞ.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﰱ ﺣﺎﻟﺔ أﻋﻄﺎل.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﻣﺮة ﻛﻞ ﻧﺼﻒ ﺳﺎﻋﺔ.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﰱ ﺣﺎﻟﺔ ﻓﺼﻞ اﻟﺒﻄﺎرﻳﺔ.
-رﻳﻠﻴﻬﺎت ﺗﻌﻤﻞ ﰱ ﺣﺎﻟﺔ أﺟﺒﺎر أى ﻋﻨﻮان ﻋﻠﻰ اﻟﻌﻤﻞ أو اﻹﻳﻘﺎف.
136
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
137
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
ﻳﻐﻠـ ـ ــﻖ ﻫـ ـ ــﺬا اﳌﻔﺘـ ـ ــﺎح ﻋﻨـ ـ ــﺪﻣﺎ ﻻ ﳝﻜـ ـ ــﻦ ﲢﻮﻳـ ـ ــﻞ رﻗـ ـ ــﻢ ASCIIإﱃ ﻣـ ـ ــﺎ ﳝﺎﺛﻠـ ـ ــﻪ ﰱ اﻟـ ـ ـ ـ
SM1.7 ١٦
.Hexadecimal
ﲢﺘﻮى ﻋﻠﻰ رﻗﻢ اﻟـ .CPU SMB6 ١٧
ﲢﺘﻮى ﻋﻠﻰ ﻗﻴﻤﺔ اﻟـ Analog Adjustmentاﻷول. SMB28 ١٨
ﲢﺘﻮى ﻋﻠﻰ ﻗﻴﻤﺔ اﻟـ Analog Adjustmentاﻟﺜﺎﱏ. SMB29 ١٩
ﳛﺘﻮى ﻋﻠﻰ ﻗﻴﻤﺔ اﻟـ Scan timeاﳋﺎﺻﺔ ﺑﺄﺧﺮ .Cycle SMW22 ٢٠
ﳛﺘﻮى ﻋﻠﻰ أﻗﻞ ﻗﻴﻤﺔ ﻟﻠـ Scan timeﰎ اﻟﻮﺻﻮل ﳍﺎ أﺛﻨﺎء اﻟﱪﻧﺎﻣﺞ. SMW24 ٢١
ﳛﺘﻮى ﻋﻠﻰ أﻛﱪ ﻗﻴﻤﺔ ﻟﻠـ Scan timeﰎ اﻟﻮﺻﻮل ﳍﺎ أﺛﻨﺎء اﻟﱪﻧﺎﻣﺞ. SMW26 ٢٢
ﺗﻤﺎرﻳﻦ ﻋﻤﻠﻴﺔ:
٢
ص=س ٣+ ﻗﻢ ﺗﻨﻔﻴﺬ ﺑﺮﻧﺎﻣﺞ ﻟﺘﻤﺜﻴﻞ اﳌﻌﺎدﻟﺔ اﻟﺘﺎﻟﻴﺔ:
اﻟﺒﺮﻧﺎﻣﺞ:
ﻣﻼﺣﻈﺔ:
ﻓﺒﺪﻻً ﻣﻦ وﺿﻊ ﻣﻔﺎﺗﻴﺢ ﳝﻜﻦ اﺳﺘﺨﺪام ﻣﻔﺘﺎح ﻣﻦ ﺿﻤﻦ ﻣﻔﺎﺗﻴﺢ اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ اﻟﺬى ﻳﻐﻠﻖ داﺋﻤﺎً.
ﺗﻤﺎرﻳﻦ ﻋﻤﻠﻴﺔ:
ﻗﻢ ﺑﺘﻨﻔﻴﺬ ﺑﺮﻧﺎﻣﺞ ﻟﺘﻤﺜﻴﻞ اﳌﻌﺎدﻟﺔ اﻟﺘﺎﻟﻴﺔ ﲝﻴﺚ أن ﺗﻌﻤﻞ اﻷﺻﻮات اﻟﺘﺤﺬﻳﺮﻳﺔ ﺑﻄﺮﻳﻘﺔ ﻣﺘﻘﻄﻌﺔ ﰱ ﺣﺎﻟﺔ:
-اﻟﻘﺴﻤﺔ ﻋﻠﻰ ﺻــﻔﺮ.
-ﻧﺎﺗﺞ ﺳﺎﻟـ ــﺐ.
-ﻧﺎﺗﺞ ﺻ ـ ــﻔﺮ.
-ﻧﺎﺗﺞ أﻛﱪ ﻣﻦ اﻟﺬاﻛﺮة.
139
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﻤﻌﺎدﻟﺔ:
٢
ص = ٢س ٤ +س ٣ +
اﻟﻤﺪﺧﻼت:
أﺳﻢ اﻟﺪﺧﻞ ﻧﻮع اﻟﺪﺧﻞ ﻋﺪد اﻟﺪﺧﻞ
ﻻ ﻳﻮﺟﺪ ﻻ ﻳﻮﺟﺪ ﻻ ﻳﻮﺟﺪ
اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ:
أﺳﻢ اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﻧﻮع اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ ﻋﺪد اﻟﻌﻤﻠﻴﺎت اﻟﺤﺴﺎﺑﻴﺔ
ADD_R ADD_R ١
MUL_R MUL_R ٢
اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ:
أﺳﻢ اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ ﻧﻮع اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ ﻋﺪد اﻟﺮﻳﻠﻴﻬﺎت اﻟﺨﺎﺻﺔ
SM0.0 Bit ١
SM0.5 Bit ٢
SM1.0 Bit ٣
SM1.1 Bit ٤
SM1.2 Bit ٥
SM1.3 Bit ٦
140
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﻤﺘﻐﻴﺮات:
أﺳﻢ اﻟﻤﺘﻐﻴﺮات ﻧﻮع اﻟﻤﺘﻐﻴﺮات ﻋﺪد اﻟﻤﺘﻐﻴﺮات
) VD0ص( Dword, Real ١
) VD4س( Dword, Real ٢
) VD8س(٢ Dword, Real ٣
٢) VD12س(٢ Dword, Real ٤
٤) VD16س( Dword, Real ٥
٢) VD20س٤ + ٢س( Dword, Real ٦
اﻟﻤﺨﺮﺟﺎت:
أﺳﻢ اﻟﺨﺮج ﻧﻮع اﻟﺨﺮج ﻋﺪد اﻟﺨﺮج
Q0.0/K1M إﻧﺬار )اﻟﻘﺴﻤﺔ ﻋﻠﻰ ﺻﻔﺮ(. ١
Q0.1/K2M إﻧﺬار )ﻧﺎﺗﺞ ﺳﺎﻟﺐ(. ٢
Q0.2/K3M إﻧﺬار )ﻧﺎﺗﺞ ﺻﻔﺮ(. ٣
إﻧـ ـ ـ ـ ــﺬار )ﻧ ـ ـ ـ ـ ــﺎﺗﺞ أﻛـ ـ ـ ـ ــﱪ ﻣـ ـ ـ ـ ــﻦ Q0.3/K4M ٤
اﻟﺬاﻛﺮة(.
141
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﺒﺮﻧﺎﻣﺞ:
142
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
143
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﺮﻳﻠﻴﻬﺎت اﳋﺎﺻﺔ
اﻟﺸﺮح:
144
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺎب اﻟﻌﺎﺷﺮ
ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
• ﺷﺮح ﺑﺮاﻣ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﺞ اﻟﺘﺤﻜﻢ.
145
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ:
ﺗﺴﺘﺨﺪم ﺑﻌﺾ اﻷواﻣﺮ اﻟﺘﺎﻟﻴﺔ ﻟﻠﻤﺴﺎﻋﺪة ﰱ اﻟﱪﳎﺔ وﻟﻴﺲ ﺑﺎﻟﺸﺮط ﻛﺠﺰء أﺳﺎﺳﻰ ﰱ اﻟﱪﻧﺎﻣﺞ.
146
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
:END -١
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ ENDﻳﺴﺘﺨﺪم ﻟﻠﺘﺤﻜﻢ ﺑﺘﻨﻔﻴﺬ ﺟﺰء ﻣﻌﲔ ﰱ اﻟـ ,Cycleﻓﻤﺜﻼً أذا ﻛﺎن اﻟﱪﻧﺎﻣﺞ
ﻣﺘﻜﻮن ﻣﻦ أرﺑﻊ أﻓﺮع ﻓﻬﺬا ﻳﻌﲎ أن أﺛﻨﺎء اﻟـ Cycleﻳﺘﻢ ﻗﺮاءة اﻷرﺑﻊ أﻓﺮع ﺑﺎﻟﻜﺎﻣﻞ وﻟﻜﻦ إذا ﰎ وﺿﻊ أﻣﺮ
ENDﰱ اﻟﻔﺮع اﻟﺜﺎﻟﺚ ﻓﻬﺬا ﻳﻌﲎ أن أﺛﻨﺎء اﻟـ Cycleﻳﺘﻢ ﻗﺮاءة اﻟﺜﻼث أﻓﺮع اﻷوﱃ ﻓﻘﻂ أﻣﺎ ﻗﺮاءة ﻣﺎ ﻳﻮﺟﺪ
ﰱ اﻟﻔﺮع اﻟﺮاﺑﻊ ﺳﻮف ﻳﺒﻘﻰ ﻣﺮﻫﻮن ﺑﺄﻣﺮ ENDﻓﺈذا ﻛﺎن ﻻ ﻳﻌﻤﻞ ﻓﺴﻴﻜﻮن اﻟﱪﻧﺎﻣﺞ ﻃﺒﻴﻌﻰ ﺟﺪاً ﻛﻤﺎ أن أﻣﺮ
ENDﱂ ﻳﺮﺳﻢ ﻣﻦ اﻷﺳﺎس إﻣﺎ إذا ﻛﺎن ﻳﻌﻤﻞ ﻓﺴﻴﺒﻘﻰ ﺣﺎﻟﻪ اﻟﱪﻧﺎﻣﺞ اﳌﺮﺳﻮم ﰱ اﻟﻔﺮع اﻟﺮاﺑﻊ ﻋﻠﻰ ﻣﺎ ﻫﻮ ﻋﻠﻴﺔ
إﱃ أن ﻳﻠﻐﻰ أﻣﺮ ENDﻣﺮة أﺧﺮى وﺗﺘﻢ ﻗﺮاءة اﻟﻔﺮع اﻟﺮاﺑﻊ ﻣﺮة أﺧﺮى.
147
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
148
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
ﻣﻼﺣﻈﺔ:
ﰱ ﺣﻘﻴﻘﺔ اﻷﻣﺮ ﻻ ﳝﻜﻦ أن ﻧﻘﻮل ﺑﺄن أﻣﺮ ENDﻳﺘﺤﻜﻢ ﰱ ﺣﺠﻢ اﻟﺪورة cycleﻷن ﻫﺬا ﺳﻴﺨﺎﻟﻒ ﻣﺎ
ﻗﺪ ﰎ ﺷﺮﺣﺔ ﰱ اﳉﺰء اﻷول وﻫﻮ ﻣﺎ ﻳﺄﻛﺪ ﺑﺄن اﻟـ cycle timeﺛﺎﺑﺖ ﻻ ﻳﺘﻐﲑ ,ﻟﺬاﻟﻚ اﻟﺬى ﺣﺪث ﰱ ﺣﺎﻟﻪ
اﺳﺘﺨﺪام أﻣﺮ ENDﱂ ﻳﻜﻦ ﺳﻮى أن اﻟﱪﻧﺎﻣﺞ ﻗﺪ ﺗﻈﺎﻫﺮ ﺑﺄﻧﺔ ﱂ ﻳﺮى اﻟﻔﺮع اﻟﺮاﺑﻊ ﻟﻜﻨﺔ ﰱ ﺟﻮﻫﺮ اﻷﻣﺮ ﻗﺪ ﻣﺮ
ﻋﻠﻰ ﲨﻴﻊ اﻷﻓﺮع ﺑﺎﻟﻜﺎﻣﻞ.
:STOP -٢
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ STOPﻳﺴﺘﺨﺪم ﻹﻳﻘﺎف وﺣﺪة اﻟـ ,PLCﻓﺄى أن ﻛﺎن ﻋﺪد اﻷﻓﺮع اﳌﺘﻜﻮن ﻣﻨﻬﺎ
اﻟﱪﻧﺎﻣﺞ ﻓﺄﻧﻪ ﻳﺘﻢ وﺿﻊ أﻣﺮ STOPﰱ أى ﻓﺮع ﻣﻦ ﻓﺮوع اﻟﱪﻧﺎﻣﺞ ﻓﺄﻧﻪ ﻳﻮﻗﻒ وﺣﺪة اﻟـ ,PLCﺣﻴﺚ ﻳﺘﻢ
اﺳﺘﺨﺪام ﻫﺬا اﻷﻣﺮ ﰱ ﺣﺎﻻت اﻟﻄﻮارئ اﻟﻘﺴﻮة اﻟﱴ ﺗﺴﺘﺪﻋﻰ ﺗﻮﻗﻒ اﻟـ PLCﺑﺎﻟﻜﺎﻣﻞ ,ﻻ ﻳﻬﻢ ﻛﺜﲑاً ﰱ أى
ﻓﺮع ﺳﻴﺘﻢ وﺿﻊ أﻣﺮ STOPﻷن ﰱ ﲨﻴﻊ اﻷﺣﻮال ﺳﻮف ﻳﺘﻮﻗﻒ اﻟـ .PLC
149
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
ﻣﻼﺣﻈﺔ:
ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام أﻣﺮ STOPﳚﺐ اﻟﺘﺄﻛﺪ ﻣﻦ إرﺳﺎل أﺷﺎرة ﻏﲑ ﻣﺴﺘﻤﺮة ﻟﺘﻨﻔﻴﺬ ﻫﺬا اﻷﻣﺮ وذاﻟﻚ ﻷن ﰱ
ﺣﺎﻟﻪ إرﺳﺎل إﺷﺎرة ﻣﺴﺘﻤﺮة ﻋﻠﻰ ﻫﺬا اﻷﻣﺮ ﻓﻬﺬا ﻳﻌﲎ أن ﻛﻞ ﻣﺮة ﺳﻮف ﺗﻘﻮم ﻓﻴﻪ ﺑﺘﺸﻐﻴﻞ وﺣﺪة اﻟﱪﳎﺔ ﺳﻮف
ﺗﺘﻮﻗﻒ ﺗﻠﻘﺎﺋﻴﺎً ﻓﻠﺬاﻟﻚ ﻳﻔﻀﻞ وﺿﻊ ﻣﻔﺘﺎح positive edgeﻗﺒﻞ أﻣﺮ STOPﻣﺒﺎﺷﺮاً ﻟﻀﻤﺎن ﻋﺪم
اﺳﺘﻤﺮار اﻹﺷﺎرة ﻟﻔﱰة ﻃﻮﻳﻠﺔ.
:DIAG_LED -٣
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ DIAG_LEDﻳﺴﺘﺨﺪم ﻟﻠﺘﺤﻜﻢ ﺑﻠﻤﺒﺔ اﻟـ ,S.F.ﻣﻊ ﻣﻼﺣﻈﺔ أن اﻟﻠﻤﺒﺔ ﻗﺪ
ﺗﺴﺘﺨﺪم ﻣﻦ ﻗﺒﻞ وﺣﺪة اﻟـ PLCﰱ ﺣﺎﻟﺔ أﻋﻄﺎل ﻓﺎﺿﺤﺔ ﻛﻤﺎ ﺳﻮف ﻧﺸﺮح ﺑﻌﺪ ﻗﻠﻴﻞ وﻗﺪ ﺗﺴﺘﺨﺪم اﻟﻠﻤﺒﺔ
أﻳﻀﺎً ﻣﻦ ﻗﺒﻞ اﳌﱪﻣﺞ ﻛﻤﺎ ﺳﻮف ﻧﺸﺮح ﰱ اﳌﺜﺎل اﳊﺎﱃ.
ﺗﻀﺎء اﻟﻠﻤﺒﺔ ﻓﻘﻂ أذا ﻛﺎﻧﺖ ﻗﻴﻤﺔ اﻟـ INﳐﺘﻠﻔﺔ ﻋﻦ ﺻﻔﺮ ,ﻓﻤﺜﻼً أذا ﻛﺎﻧﺖ اﻟﻘﻴﻤﺔ ﻫﻰ ٧ﻓﺴﺘﻌﻤﻞ اﻟﻠﻤﺒﺔ.
150
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
151
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
ﻣﻼﺣﻈﺔ:
-ﺗﻀﺎء اﻟﻠﻤﺒﺔ ﺑﺎﻟﻮن اﻷﺻﻔﺮ ﰱ ﺣﺎﻟﻪ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻦ ﻗﺒﻞ اﳌﱪﻣﺞ ﻛﻤﺎ ﰱ اﻟﺘﻤﺮﻳﻦ اﳊﺎﱃ.
-ﺗﻀﺎء اﻟﻠﻤﺒﺔ ﺑﺎﻟﻮن اﻷﺻﻔﺮ ﰱ ﺣﺎﻟﻪ ﺗﻄﺒﻴﻖ أﻣﺮ FORCEﻋﻠﻰ أى ﻋﻨﻮان ﻛﻤﺎ ﺳﺒﻖ وﺷﺮﺣﻨﺎ ﰱ
اﻟﻔﺼﻞ اﻟﺜﺎﱏ ﻣﻦ ﻫﺬا اﻟﻜﺘﺎب.
-ﺗﻀﺎء اﻟﻠﻤﺒﺔ ﺑﺎﻟﻮن اﻷﲪﺮ ﰱ ﺣﺎﻟﻪ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻦ ﻗﺒﻞ وﺣﺪة اﻟـ PLCﰱ ﺣﺎﻟﺔ اﻷﻋﻄﺎل اﻟﻔﺎﺿﺤﺔ
ﻛﻤﺎ ﺳﻴﺘﻢ اﻟﺘﻮﺿﻴﺢ ﻓﺎﻟﻜﺘﺎب اﻟﺘﺎﱃ اﳋﺎص ﺑﺎﻷﻋﻄﺎل واﻟﺘﻤﺮﻳﻦ اﻟﻌﻤﻠﻴﺔ.
:JMP/LBL -٤
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ JMP/LBLﻳﺴﺘﺨﺪم ﻟﻠﺘﺤﻜﻢ ﺑﺘﻨﻔﻴﺬ ﺟﺰء ﻣﻌﲔ ﰱ وﺳﻂ اﻟـ ,Cycleﲝﻴﺚ ان
ﻫﺬا اﻷﻣﺮ ﻳﻘﻮم ﺑﺘﻨﻔﻴﺬ ﻛﻞ اﻟﱪﻧﺎﻣﺞ ﻣﺎﻋﺪا اﻷﻓﺮع اﳌﻮﺟﻮدة ﺑﲔ اﻟـ JMPو اﻟـ LBLﻣﻊ ﻣﻼﺣﻈﺔ أن ﻳﺘﻢ
ﻛﺘﺎﺑﺔ ﻧﻔﺲ اﻟﺮﻗﻢ ﻋﻠﻰ اﻟـ JMPو اﻟـ .LBL
ﻣﻼﺣﻈﺔ:
-ﳌﻌﺮﻓﺔ أى JMPﳜﺺ أى LBLﻳﻜﺘﺐ ﻧﻔﺲ اﻟﺮﻗﻢ ﻋﻠﻰ اﻷﺛﻨﺎن.
-اﻷرﻗﺎم اﳌﺴﺘﺨﺪﻣﺔ ﺗﺒﺪأ ﻣﻦ ﺻﻔﺮ إﱃ .٢٥٥
-ﳝﻜﻦ أن ﻳﺘﻜﺮر اﻟـ JMPو اﻟـ LBLأﻛﺜﺮ ﻣﻦ ﻣﺮة وﻟﻜﻦ ﻋﺪد اﻟـ JMPﳚﺐ أن ﻳﺴﺎوى ﻋﺪد اﻟـ
.LBL
-ﺷﺮط أن ﻳﻜﻮن اﻟـ JMPﻓﻮق اﻟـ LBLوﻟﻴﺲ اﻟﻌﻜﺲ.
-ﳝﻜﻦ ﻟﻠـ JMPو اﻟـ LBLأن ﻳﺘﻜﺮر ﺑﻄﺮق ﳐﺘﻠﻔﺔ) :ﻣﺘﺘﺎﺑﻌﺔ – ﻣﺘﺸﺎﺑﻜﺔ – ﻣﺘﺪاﺧﻠﺔ(.
152
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
٢
٣
١
٢
٢
١
اﻟﻄﺮﻳﻘﺔ
٣
٣ ٢ ٢
٣
٢
٣
١
٣
٣
153
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
ﻣﻼﺣﻈﺔ:
-ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام أﻣﺮ JMP-LBLﻳﺘﻄﻠﺐ داﺋﻤﺎً أن ﻳﺘﻢ رﺳﻢ اﳉﺰء اﳋﺎص ﺑﺎﻟـ JMPﻓﻮق
اﳉﺰء اﳋﺎص ﺑﺎﻟـ LBLوذاﻟﻚ ﻷﻧﻪ ﺣﲔ ﻳﻌﻤﻞ اﻟـ JMPﻓﺄﻧﻪ ﺳﻴﻘﻔﺰ إﱃ أﺳﻔﻞ ﺣﱴ ﻳﺼﻞ إﱃ اﻟـ
LBLاﳌﻌﻨﻮن ﺑﻨﻔﺲ ﻋﻨﻮان اﻟـ .JMP
-ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام أﻣﺮ JMP-LBLوﻟﻜﻦ ﻣﻦ دون اﻷﻟﺘﺰام ﺑﺎﻟﺸﺮوط اﻟﺴﺎﺑﻖ ذﻛﺮﻫﺎ أى أن ﰱ
ﺣﺎﻟﺔ أن ﻳﺘﻢ رﺳﻢ اﳉﺰء اﳋﺎص ﺑﺎﻟـ JMPأﺳﻔﻞ اﳉﺰء اﳋﺎص ﺑﺎﻟـ LBLﺳﺘﺤﺪث ﻣﺸﻜﻠﺔ وذاﻟﻚ
ﻷﻧﻪ ﺣﲔ ﻳﻌﻤﻞ اﻟـ JMPﻓﺄﻧﻪ ﺳﻴﻘﻔﺰ إﱃ اﻷﻋﻠﻰ ﺣﱴ ﻳﺼﻞ إﱃ اﻟـ LBLاﳌﻌﻨﻮن ﺑﻨﻔﺲ رﻗﻢ اﻟـ
JMPﻣﻦ ﻣﺎ ﻳﺴﺘﺪﻋﻰ إﱃ اﻟﺪوران ﻋﻜﺲ اﳊﺮﻛﺔ اﻟﻄﺒﻴﻌﻴﺔ ﻟﻠﱪﻧﺎﻣﺞ ﻓﺘﺤﺪث اﳌﺸﻜﻠﺔ وﺳﻮف ﻳﺘﻢ
ﺷﺮح اﻷﻋﻄﺎل ﺑﺎﻟﺘﻔﺼﻴﻞ ﰱ اﻟﻜﺘﺎب اﻟﺘﺎﱃ اﳋﺎص ﺑﺎﻷﻋﻄﺎل واﻟﺘﻤﺎرﻳﻦ اﻟﻌﻤﻠﻴﺔ.
154
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
155
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
:RET -٥
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ RETﻳﺴﺘﺨﺪم ﻟﻠﺮﺟﻮع ﻣﻦ ﺻﻔﺤﺔ اﻟﱪﳎﺔ اﻟﻔﺮﻋﻴﺔ إﱃ ﺻﻔﺤﺔ اﻟﱪﳎﺔ اﻟﺮﺋﻴﺴﻴﺔ ﻗﺒﻞ
اﻷﻧﺘﻬﺎء ﻣﻦ ﺗﻨﻔﻴﺬ اﻟﱪﻧﺎﻣﺞ اﻟﻔﺮﻋﻰ ﺑﺎﻟﻜﺎﻣﻞ أو ﺣﱴ ﺑﻌﺪ اﻷﻧﺘﻬﺎء ﻣﻦ ﺗﻨﻔﻴﺬ اﻟﱪﻧﺎﻣﺞ ﺑﺎﻟﻜﺎﻣﻞ.
156
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
ﺗﻮﺿﻴﺢ:
ﻟﻴﺲ اﻟﻔﻜﺮة ﰱ اﻟﱪﻧﺎﻣﺞ ﺑﻞ اﻟﻔﻜﺮة ﻫﻰ ﺗﻮﺿﻴﺢ اﻧﻪ ﳝﻜﻦ أن ﻳﺘﻢ اﳋﺮوج ﻣﻦ اﻟﱪﻧﺎﻣﺞ اﻟﻔﺮﻋﻰ دون اﻻﻧﺘﻈﺎر ﺣﱴ
ﺎﻳﺔ اﻷﻓﺮع ﺑﺎﻟﻜﺎﻣﻞ وذاﻟﻚ ﳛﺪث ﰱ ﺣﺎﻟﺔ ﺗﺸﻐﻴﻞ أﻣﺮ RETﻓﻘﻂ.
157
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
:FOR/NEXT -٦
ﻛﻤﺎ ﺳﺒﻖ وذﻛﺮﻧﺎ أن أﻣﺮ FOR/NEXTﻳﺴﺘﺨﺪم ﻟﻠﺘﺤﻜﻢ ﺑﻘﺮاءة ﺟﺰء ﻣﻌﲔ ﰱ اﻟﱪﻧﺎﻣﺞ أﻛﺜﺮ ﻣﻦ ﻣﺮة ﻗﺒﻞ
اﻷﻧﺘﻬﺎء ﻣﻦ اﻟـ . Cycle
ﻓﻤﺜﻼً ﰱ اﻟﺘﻤﺮﻳﻦ اﻟﺘﺎﱃ ﰎ ﺗﺴﺠﻴﻞ ﻗﻴﻤﺔ ۱ﰱ INITﺑﻴﻨﻤﺎ ﰎ ﺗﺴﺠﻴﻞ ﻗﻴﻤﺔ ۱٠ﰱ FINALﻓﺎ ﰱ ﻫﺬﻩ
اﳊﺎﻟﺔ ﺳﻴﺘﻢ اﳌﺮور ﻋﻠﻰ اﻷﻓﺮع اﳌﺘﻮاﺟﺪة ﺑﲔ FORو NEXTﻋﺸﺮة ﻣﺮات ﲝﻴﺚ أن ﻗﻴﻤﺔ INDX
ﺳﻮف ﻳﺒﺪأ ﻣﻦ واﺣﺪ إﱃ ﻋﺸﺮة
ﻣﻼﺣﻈﺔ:
ﻧﻈﺮاً ﻷن ﻗﻴﻤﺔ INDXﺳﻮف ﺗﺘﻐﲑ ﻋﺪة ﻣﺮات ﺣﻴﺚ ﺳﻴﻀﺎف ۱إﱃ اﻟﻘﻴﻤﺔ ﻛﻞ دورة ﻓﻠﻬﺬا ﻻ ﳝﻜﻦ ﲢﺪﻳﺪ
أى ﻗﻴﻤﺔ ﻣﺴﺒﻘﺔ ﰱ ﻫﺬا اﳌﻜﺎن ﺑﻞ ﺳﻴﺘﻢ ﻛﺘﺎﺑﺔ ﻣﺘﻐﲑ ﲝﺠﻢ wordﺣﱴ ﻳﺘﻴﺢ إﱃ اﶈﺘﻮى أن ﻳﺘﻐﲑ ﺑﺴﻬﻮﻟﻪ.
ﻋﻨﺪ اﳌﺮور ﻋﻠﻰ أﻣﺮ FORﻟﻠﻤﺮة اﻷوﱃ ﺗﻜﻮن ﻗﻴﻤﺔ اﻟـ [۱] VW0ﰒ ﰱ اﳌﺮة اﻟﺜﺎﱏ ﻳﻀﺎف إﱃ اﻟﺮﻗﻢ
واﺣﺪ ﻓﺘﺼﺒﺢ ﻗﻴﻤﺔ اﻟـ [٢] VW0وﻫﻜﺬا][۱٠] ,[٩] ,[۸] ,[٧] ,[٦] ,[٥] ,[٤] ,[٣
158
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – ﺑﺮاﻣﺞ اﻟﺘﺤﻜﻢ
اﻟﺒﺮﻧﺎﻣﺞ:
أى أن ﻛﺎن اﻟﱪﻧﺎﻣﺞ اﳌﺮﺳﻮم ﰱ اﻟﻔﺮع اﻟﺜﺎﱏ واﻟﺜﺎﻟﺚ ﻓﺄﻧﻪ ﰱ ﺣﺎﻟﻪ ﻏﻠﻖ اﳌﻔﺘﺎح I0.1ﺳﻮف ﻳﺘﻢ ﻗﺮاءة اﻷﻓﺮﻋﲔ
اﻟﺜﺎﱏ واﻟﺜﺎﻟﺚ ﻋﺸﺮة ﻣﺮات ﻗﺒﻞ اﻻﻧﺘﻬﺎء ﻣﻦ اﻟﺪورة اﻟﻮاﺣﺪة.
159
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
اﻟﻤﺤﻮﻻت
• ﺷﺮح اﻟﻤﺤـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﻮﻻت.
161
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
اﻟﻤﺤﻮﻻت:
ﺗﺴﺘﺨﺪم اﶈﻮﻻت ﻟﻠﺘﺤﻮﻳﻞ ﺑﺜﻼث ﻃﺮق ﳐﺘﻠﻔﺔ:
-ﻣﻦ ﺣﺠﻢ إﻟﻰ ﺣﺠﻢ ﻣﺨﺘﻠﻒ.
ﻓﻬﺬا ﻳﺘﺤﻘﻖ ﰱ ﺣﺎﻟﺔ اﻟﺘﺤﻮﻳﻞ ﻣﻦ Byteإﱃ Wordﻣﺜﻼً ,ﺣﻴﺚ ﻳﺘﻢ ﺗﻐﲑ اﳊﺠﻢ ﻣﻦ 8bits
إﱃ .16bits
-ﻣﻦ formatإﻟﻰ formatأﺧﺮ.
ﻓﻬﺬا ﻳﺘﺤﻘﻖ ﰱ ﺣﺎﻟﺔ اﻟﺘﺤﻮﻳﻞ ﻣﻦ Dintegerإﱃ Realﻣﺜﻼً ,ﺣﻴﺚ ﻳﺘﻢ ﺗﻐﲑ اﻟـ formatﻣﻦ
أرﻗﺎم ﺻﺤﻴﺤﺔ إﱃ أرﻗﺎم ﻋﺸﺮﻳﺔ دون ﺗﻐﲑ ﺣﺠﻢ اﻟﺬاﻛﺮة.
-ﻣﻦ ﺣﺠﻢ و formatإﻟﻰ ﺣﺠﻢ و formatأﺧﺮ.
ﻓﻬﺬا ﻳﺘﺤﻘﻖ ﰱ ﺣﺎﻟﺔ اﻟﺘﺤﻮﻳﻞ ﻣﻦ Byteإﱃ Integerﻣﺜﻼً ﺣﻴﺚ ﻳﺘﻢ ﺗﻐﲑ اﳊﺠﻢ ﻣﻦ 8bits
ﺑﺪون إﺷﺎرة إﱃ 16bitsﺑﺈﺷﺎرة.
162
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
164
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
165
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
166
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
ﻣﻼﺣﻈﺔ:
ﻛﻴﻔﻴﺔ ﻣﻌﺮﻓﺔ أذا ﻛﺎن اﻟﺮﻗﻢ اﻟﺬى ﺳﻴﻜﺘﺐ ﻋﻠﻰ اﻟﺬاﻛﺮة ﻫﻮ رﻗﻢ ﺻﺤﻴﺢ أم رﻗﻢ ﻋﺸﺮى و ﻛﻴﻔﻴﺔ ﻣﻌﺮﻓﺔ اﻟﻨﻈﺎم
اﻟﺬى ﺳﻴﺴﺘﺨﺪم ﻟﻌﺮض اﻟﻘﻴﻤﺔ.
167
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :B_I
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VB0
1 1 0 1 0 1 0 1
VW6
0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :I_B
168
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VW2
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1
VB0
1 0 0 1 0 1 0 1
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :I_D
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VW0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1
VD8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1
169
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :DI_R
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VD0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1
VD4
0 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ﱂ ﺗﺘﻐﲑ اﻟﻘﻴﻤﺔ وﱂ ﻳﺘﻐﲑ اﳊﺠﻢ وﻟﻜﻦ ﰎ ﺗﻐﲑ اﻟﻨﻈﺎم ﻣﻦ أرﻗﺎم ﺻﺤﻴﺤﺔ ﻷرﻗﺎم ﻋﺸﺮﻳﺔ.
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :ROUND
170
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VD0
0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
VD4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1
ﻣﺜﺎل ﻋﻤﻠﻰ:
ﻣﺜﺎل ﻋﻤﻠﻰ ﺑﺎﺳﺘﺨﺪام :TRUNC
ﺗﻮﺿﻴﺢ ﻟﻠﺸﺮح:
VD0
0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
VD4
0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
أﻣﺮ TRUNCﳝﺴﺢ اﻟﺮﻗﻢ اﳌﻜﺘﻮب ﺑﻌﺪ اﻟﻌﻼﻣﺔ و ﻳﻜﺘﺐ اﻟﺮﻗﻢ اﻟﺼﺤﻴﺢ ﻓﻘﻂ.
اﻟﺮﻗﻢ اﳌﻜﺘﻮب ﰱ VD0ﻫﻮ ٦,٤ﺑﻴﻨﻤﺎ اﳌﻜﺘﻮب ﰱ ٤ VD4
171
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﶈﻮﻻت
-۱ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ﻗﻴﻤﺔ ﻣﻦ ﻋﻠﻰ IB0ﻟﻼﺳﺘﺨﺪام ﻣﻊ ﻣﺆﻗﺖ زﻣﲎ أو ﻣﻊ ﻋﺪاد ﻓﺴﻮف ﻧﻼﺣﻆ أﻧﻪ ﺗﻮﺟﺪ
ﻣﺸﻜﻠﺔ وﻫﻰ أن اﻟﻘﻴﻤﺔ اﳋﺎﺻﺔ ﺑﺎﳌﻔﺎﺗﻴﺢ ﻫﻰ ﻋﻠﻰ ﺣﺠﻢ byteﺑﻴﻨﻤﺎ اﳌﺆﻗﺖ اﻟﺰﻣﲎ أو اﻟﻌﺪاد ﻳﻌﻤﻞ ﻛﻞ ﻣﻨﻬﻢ
ﻋﻠﻰ ذاﻛﺮة ﲝﺠﻢ wordوﻟﺬاﻟﻚ ﻓﺄﻧﺔ ﻳﺘﻢ اﺳﺘﺨﺪام اﶈﻮﻻت ﻣﻦ byteإﱃ wordوذاﻟﻚ ﻋﻦ ﻃﺮﻳﻖ
اﻟﻌﻤﻠﻴﺔ .B-I
-٢ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ﻗﻴﻤﺔ ﻣﻦ ﻋﻠﻰ ﻣﺆﻗﺖ زﻣﲎ أو ﻣﻦ ﻋﻠﻰ ﻋﺪاد ﻟﻼﺳﺘﺨﺪام ﻣﻊ ﻗﻴﻤﺔ أﺧﺮى )ﻣﻌﺎدﻟﺔ
رﻳﺎﺿﻴﺔ( ﲢﺘﻮى ﻋﻠﻰ أرﻗﺎم ﻋﺸﺮﻳﺔ ﻓﺴﻮف ﻧﻼﺣﻆ أﻧﻪ ﺗﻮﺟﺪ ﻣﺸﻜﻠﺔ وﻫﻰ أن اﻟﻘﻴﻤﺔ اﳋﺎﺻﺔ ﺑﺎﳌﺆﻗﺖ اﻟﺰﻣﲎ أو
ﺑﺎﻟﻌﺪاد ﻫﻰ ﲝﺠﻢ wordﺑﻴﻨﻤﺎ اﻷرﻗﺎم اﻟﻌﺸﺮﻳﺔ أى اﻷرﻗﺎم ﻏﲑ اﻟﺼﺤﻴﺤﺔ ﺗﻜﺘﺐ ﻋﻠﻰ ذاﻛﺮة ﲝﺠﻢ
Dwordوﻟﺬاﻟﻚ ﻓﺄﻧﺔ ﻳﺘﻢ اﺳﺘﺨﺪام:
-أوﻻً :اﶈﻮﻻت ﻣﻦ wordإﱃ Dwordوذاﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﻟﻌﻤﻠﻴﺔ I-DIﻟﺘﻐﻴﲑ اﳊﺠﻢ ﻣﻊ
اﻻﺣﺘﻔﺎظ ﺑﻨﻔﺲ اﻟﻘﻴﻤﺔ .
-ﺛﺎﻧﻴﺎً :اﶈﻮﻻت ﻣﻦ Dwordإﱃ Realوذاﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﻟﻌﻤﻠﻴﺔ DI-Rﻟﺘﻐﻴﲑ اﻟﻘﻴﻤﺔ
اﻟﺼﺤﻴﺤﺔ ﻟﻘﻴﻤﺔ ﻋﺸﺮﻳﺔ دون ﺗﻐﻴﲑ اﳊﺠﻢ.
-٣ﰱ ﺣﺎﻟﺔ اﺳﺘﺨﺪام ﻗﻴﻤﺔ ﻋﺸﺮﻳﺔ ﲝﺠﻢ Dwordﻓﻤﻦ اﳌﺆﻛﺪ أن اﻟﻘﻴﻤﺔ ﻟﻦ ﺗﻜﻮن ﺻﺤﻴﺤﺔ ﺑﻞ ﺳﺘﺤﺘﻮى
ﻋﻠﻰ أى رﻗﻢ ﺑﻌﺪ اﻟﻌﻼﻣﺔ اﻟﻌﺸﺮﻳﺔ ﺣﱴ وأن ﻛﺎن ﻫﺬا اﻟﺮﻗﻢ ﻫﻮ ﺻﻔﺮ وﺑﻴﻨﻤﺎ ﰱ ﺣﺎﻟﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻋﺪاد ﺳﺘﻜﻮن
اﳌﺸﻜﻠﺔ ﻟﻴﺴﺖ ﰱ اﳊﺠﻢ ﻓﻘﻂ ﺑﻞ ﰱ اﻟـ formatأﻳﻀﺎً ﻓﻠﺬاﻟﻚ ﺳﻴﺴﺘﺨﺪم:
-أوﻻً :أﻣﺮ TRUNCﳊﺬف أى أرﻗﺎم ﺑﻌﺪ اﻟﻌﻼﻣﺔ اﻟﻌﺸﺮﻳﺔ دون اﻟﺘﻐﲑ ﰱ اﳊﺠﻢ.
-ﺛﺎﻧﻴﺎً :اﶈﻮﻻت ﻣﻦ Dwordإﱃ Wordوذاﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﻟﻌﻤﻠﻴﺔ DI-Iﻟﺘﻐﻴﲑ اﳊﺠﻢ دون
ﺗﻐﲑ اﻟﻘﻴﻤﺔ.
172
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺘﺮﺣﻴﻞ و اﻟﺪوران
• ﺷﺮح اﻟﺘﺮﺣﻴـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـﻞ .SHIFT
173
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺘﺮﺣﻴﻞ و اﻟﺪوران:
اﻟﺘﺮﺣﻴﻞ:
ﻳﻘﻮم ﺑﱰﺣﻴﻞ ﳏﺘﻮﻳﺎت اﻟـ bitsﻟﻠﻴﻤﲔ أو ﻟﻠﻴﺴﺎر ﺣﺴﺐ اﻟﻨﻮع ,ﲝﻴﺚ أن ﳏﺘﻮى اﻟـ bitsاﻟﱴ ﲣﺮج ﻋﻦ ﺣﺪود
اﻟﺬاﻛﺮة ﲤﺴﺢ ﺗﻠﻘﺎﺋﻴﺎً.
ﻣﺜﺎل:
SHL_B
1 1 0 1 0 1 0 1
0 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1
ﰎ ﻣﺴﺢ ﻗﻴﻤﺔ أول .bit
174
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺪوران:
ﻳﻘﻮم ﺑﺪوران ﳏﺘﻮﻳﺎت اﻟـ bitsﻟﻠﻴﻤﲔ أو ﻟﻠﻴﺴﺎر ﺣﺴﺐ اﻟﻨﻮع ,وﻟﻜﻦ ﳏﺘﻮى اﻟـ bitsاﻟﱴ ﲣﺮج ﻣﻦ اﳊﺠﻢ
اﻟﺬى ﻧﺘﻌﺎﻣﻞ ﻣﻌﻪ ﻻ ﲤﺴﺢ ﺑﻞ ﺗﻌﻮد ﻟﻨﻔﺲ اﻟﺬاﻛﺮة ﻣﻦ اﻟﻨﺎﺣﻴﺔ اﻷﺧﺮى.
ﻣﺜﺎل:
ROL_B
ﻣﺜﺎل:
ROR_W
1 1 1 0 1 0 1 0 1 1 0 1 0 1 1 1
1 1 1 1 0 1 0 1 0 1 1 0 1 0 1 1
ﰎ ﻧﻘﻞ ﻗﻴﻤﺔ أول .bit
175
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺘﺮﺣﻴﻞ:
اﻟﺪوران
176
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
177
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
ﻳﻘﻮم SHL_Wﺑﱰﺣﻴﻞ
اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ BITS SHL_W
٥
داﺧﻞ اﻟـ WORDﻣﻦ
اﻟﻴﻤﲔ إﱃ اﻟﻴﺴﺎر.
SHL_DW ﻳﻘﻮم
ﺑﱰﺣﻴﻞ اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ SHL_DW
اﻟـ داﺧﻞ BITS ٦
DWORDﻣﻦ اﻟﻴﻤﲔ
إﱃ اﻟﻴﺴﺎر.
ﻳﻘﻮم ROR_Bﺑﺪوران
اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ BITS ROR_B
٧
داﺧﻞ اﻟـ BYTEﻣﻦ
اﻟﻴﺴﺎر إﱃ اﻟﻴﻤﲔ .
ﻳﻘﻮم ROR_Wﺑﺪوران
اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ BITS ROR_W
٨
داﺧﻞ اﻟـ WORDﻣﻦ
اﻟﻴﺴﺎر إﱃ اﻟﻴﻤﲔ .
ROR_DW ﻳﻘﻮم
ﺑﺪوران اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ ROR_DW
اﻟـ داﺧﻞ BITS ٩
DWORDﻣﻦ اﻟﻴﻤﲔ
إﱃ اﻟﻴﺴﺎر.
178
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
ﻳﻘﻮم ROL_Bﺑﺪوران
اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ BITS ROL_B
١٠
داﺧﻞ اﻟـ BYTEﻣﻦ
اﻟﻴﻤﲔ إﱃ اﻟﻴﺴﺎر.
ﻳﻘﻮم ROL_Wﺑﺪوران
اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ BITS ROL_W
١١
داﺧﻞ اﻟـ WORDﻣﻦ
اﻟﻴﻤﲔ إﱃ اﻟﻴﺴﺎر.
ROL_DW ﻳﻘﻮم
ﺑﺪوران اﻟﻘﻴﻢ اﳋﺎﺻﺔ ﺑﺎﻟـ ROL_DW
اﻟـ داﺧﻞ BITS ١٢
DWORDﻣﻦ اﻟﻴﻤﲔ
إﱃ اﻟﻴﺴﺎر.
179
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺘﻤﺮﻳﻦ ﻋﻤﻠﻰ:
ﻣﻜﻴﻨﺔ ﺗﻘﻮم ﺑﻠﺤﺎم اﻷﻃﺮاف اﻟﺪاﺧﻠﻴﺔ اﳌﺜﺒﺘﺔ ﰱ اﻟﻘﻌﺪة اﳋﺎﺻﺔ ﺑﺎﻟﻠﻤﺒﺔ و ﻟﻜﻦ ﻧﻈﺮاً ﻟﺸﺪة درﺟﺔ اﳊﺮارة
ﺑﺎﻟﻘﺮب ﻣﻦ ﻣﻜﻴﻨﺔ اﻟﻠﺤﺎم ﺳﻮف ﻳﺘﻢ و ﺿﻊ اﳊﺴﺎس ﺑﻌﻴﺪاً ﻋﻦ ﻣﻜﺎن ﻣﻜﻴﻨﺔ اﻟﻠﺤﺎم ,اﳌﺴﺎﻓﺔ ﺑﲔ
اﻟﻠﻤﺒﺎت ﻣﺘﺴﺎوﻳﺔ وﻫﻰ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺣﺮﻛﺔ اﻟﺴﲑ ﻓﻬﻮ ﻳﺘﺤﺮك ﻧﺼﻒ ﺛﺎﻧﻴﺔ وﻳﻘﻒ ﻧﺼﻒ ﺛﺎﻧﻴﺔ.
180
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺒﺮﻧﺎﻣﺞ:
181
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﱰﺣﻴﻞ واﻟﺪوران
اﻟﺸﺮح:
:Network1
ﺳﻮف ﻳﻌﻤﻞ اﻟﺴﲑ ﻃﺎﳌﺎ ﻗﻴﻤﺔ اﻟـ VB0ﳐﺘﻠﻔﺔ ﻋﻦ .١٦
:Network2
ﰱ أول Cycleﺳﻮف ﺗﻜﻮن ﻗﻴﻤﺔ VB0ﻫﻰ ١أى أن ﻗﻴﻤﺔ V0.0ﻫﻲ .١
:Network3
ﻛﻞ ﻣﺮة ﲤﺮ اﻟﻠﻤﺒﺔ أﻣﺎم اﳊﺴﺎس ﺳﻮف ﻳﺘﻢ ﺗﻄﺒﻴﻖ ﻣﺒﺪأ ﺗﺮﺣﻴﻞ اﻟـ bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Byte VB0ﻟﻠﻴﺴﺎر.
:Network4
ﻋﻨﺪﻣﺎ ﺗﺼﺒﺢ ﻗﻴﻤﺔ اﻟـ VB0ﻫﻰ ١٦ﻫﺬا ﻳﻌﲎ أﻧﻪ ﺗﻮﺟﺪ اﻵن ﳌﺒﺔ أﻣﺎم ﻣﻜﻴﻨﺔ اﻟﻠﺤﺎم.
:Network5
ﺳﻮف ﻳﻌﻤﻞ اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﻟﻜﻰ ﻳﻘﻮم ﺑﻔﺼﻞ ﻣﻜﻴﻨﺔ اﻟﻠﺤﺎم ﺗﻠﻘﺎﺋﻴﺎً.
:Network6
ﻓﻴﻘﻮم اﳌﺆﻗﺖ اﻟﺰﻣﲎ ﺑﱰﺣﻴﻞ اﻟـ bitsاﳋﺎﺻﺔ ﺑﺎﻟـ Byte VB0ﻟﻠﻴﻤﲔ ﻓﻴﻌﻤﻞ اﻟﺴﲑ اﻟﺬى ﳛﻤﻞ اﻟﻠﻤﺒﺎت ﻣﺮة
أﺧﺮى ,وﻫﻜﺬا.
182
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻼﻣﺎت
اﻟﻌﻼﻣﺎت
• ﺷﺮح اﻟﻌـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ـ ــﻼﻣﺎت.
183
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻼﻣﺎت
اﻟﻌﻼﻣﺎت:
ﺗﺴﺘﺨﺪم اﻟﻌﻼﻣﺎت ﻟﺘﻤﻴﺰ اﻷﻓﺮع ﻋﻦ ﺑﻌﻀﻬﺎ و ﻟﻠﺘﻨﻘﻞ ﻣﻦ ﻓﺮع إﱃ أﺧﺮ ﺑﺴﻬﻮﻟﺔ ﺧﺎﺻﺔ ﰱ اﻟﱪاﻣﺞ اﻟﻜﺒﲑة ﻋﻨﺪﻣﺎ
ﺗﻜﻮن ﻫﻨﺎك ﻓﺮوع ﺑﺮﳎﺔ ﻣﺮﺗﺒﻄﺔ ﺑﺒﻌﻀﻬﺎ و ﰱ ﻧﻔﺲ اﻟﻮﻗﺖ ﺗﺒﻌﺪ ﻋﻦ ﺑﻌﻀﻬﺎ ﻣﻦ ﺣﻴﺚ ﺗﻮاﺟﺪﻫﺎ ﰱ اﻟﱪﻧﺎﻣﺞ ,ﻗﺪ
ﳛﺪث ﰱ أى ﺑﺮﻧﺎﻣﺞ إﱃ أن ﻧﻀﻄﺮ إﱃ ﺗﻐﲑ ﺗﺮﺗﻴﺐ أﻣﺎﻛﻦ أﻓﺮع اﻟﱪﳎﺔ ﺣﱴ ﻳﻌﻤﻞ اﻟﱪﻧﺎﻣﺞ ﺑﺼﻮرة ﺻﺤﻴﺤﺔ
وﻟﻜﻦ ﺣﲔ ﻳﺘﻄﻠﺐ اﳌﻮﺿﻮع إﱃ اﻟﻌﻮدة ﰱ اﳌﺴﺘﻘﺒﻞ ﻟﻠﻌﻤﻞ ﻋﻠﻰ ﻧﻔﺲ اﻟﱪﻧﺎﻣﺞ ﻣﺮة أﺧﺮى ﻧﻜﻮن ﱂ ﻧﻌﺪ ﻧﺘﺬﻛﺮ
ﺑﻌﺪ أى ﻣﻦ أﻓﺮع اﻟﱪﳎﺔ ﻣﺮﺗﺒﻄﺔ ﺑﺒﻌﻀﻬﺎ وﻫﺬا ﻳﺘﻄﻠﺐ وﻗﺖ ﻛﺒﲑ ﻹﻋﺎدة ﻗﺮاءة اﻟﱪﻧﺎﻣﺞ ﺑﺎﻟﻜﺎﻣﻞ ﻣﻦ اﻟﺒﺪاﻳﺔ,
اﻷﻣﺮ اﻟﺬى ﻛﺎن ﳝﻜﻦ ﺣﻠﻪ ﻣﻦ اﻟﺒﺪاﻳﺔ ﰱ ﺣﺎﻟﻪ ﰎ اﺳﺘﺨﺪام اﻟﻌﻼﻣﺎت ﻛﻤﺎ ﺳﻨﻮﺿﺢ اﻵن.
اﻟﻤﻔﺎﺗﻴﺢ اﻟﻤﺴﺘﺨﺪﻣﺔ:
184
ﺑﺮﻣﺠﺔ اﻟﺘﺤﻜﻢ اﻟﻤﻨﻄﻘﻴﺔ – اﻟﻌﻼﻣﺎت
اﻟﺒﺮﻧﺎﻣﺞ:
ﺗﻮﺿﻴﺢ:
ﻟﻴﺲ اﻟﻔﻜﺮة ﰱ اﻟﱪﻧﺎﻣﺞ ﺑﻞ اﻟﻔﻜﺮة اﻧﻪ ﳝﻜﻦ أن ﻳﺘﻢ اﻟﺘﻨﻘﻞ ﻣﻦ اﻟﻔﺮع اﻟﺜﺎﱏ إﱃ اﻟﻔﺮع اﳋﻤﺴﲔ ﰱ اﳊﺎل ,ﻓﺒﺎﻟﺮﻏﻢ
ﻣﻦ أن اﻟﻔﺮع اﳋﻤﺴﲔ ﳛﺘﻮى ﻋﻠﻰ اﳋﺮج اﻟﺬى ﻳﻌﻤﻞ ﺑﻮاﺳﻄﺔ اﳌﺆﻗﺖ اﻟﺰﻣﲎ اﳌﺘﻮاﺟﺪ ﰱ اﻟﻔﺮع اﻟﺜﺎﱏ وﻟﻜﻦ
ﻟﻈﺮوف ذات ﻋﻼﻗﺔ ﺑﺎﻷوﻟﻮﻳﺎت ﱂ ﻧﺘﻤﻜﻦ ﻣﻦ وﺿﻌﻬﻤﺎ ﺑﺎﻟﻘﺮب ﻣﻦ ﺑﻌﻀﻬﻤﺎ وﻟﻜﻦ ﰎ ﺣﻞ اﳌﺸﻜﻠﺔ ﺑﺎﺳﺘﺨﺪام
اﻟﻌﻼﻣﺎت .Bookmarks
185
ﺍﻟﻔﻬﺮﺱ
--------------------------
٣٥ .................................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺜﺎﱐ "ﺟﺪﻭﻝ ﺍﳊﺎﻻﺕ"
٣۸ ............................................................ ﻣﻔﺎﺗﻴﺢ ﻫﺎﻣﺔ ﺑﺎﻟﻨﺴﺒﺔ ﳉﺪﻭﻝ ﺍﳊﺎﻻﺕ
٣٩ ﻃﺮﻳﻘﺔ ﺇﻇﻬﺎﺭ ﺣﺎﻟﺔ ﺍﻟﻌﻨﺎﻭﻳﻦ ..........................................................................
--------------------------
٥٩ ................................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺜﺎﻟﺚ "ﺟﺪﻭﻝ ﺍﻟﺮﻣﻮﺯ"
٦۱ ﺍﻷﺧﻄﺎﺀ ﺍﳌﺘﻌﻠﻘﺔ ﲜﺪﻭﻝ ﺍﻟﺮﻣﻮﺯ
....................................................................
--------------------------
٦٩ ................................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺮﺍﺑﻊ "ﺻﻔﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ"
٧٠ ............................................................................ ﺍﺳﺘﺨﺪﺍﻡ ﺻﻔﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ
٧٢ ﺍﳌﻔﺎﺗﻴﺢ ﺍﳌﺴﺘﺨﺪﻣﺔ ﺑﺼﻔﺤﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ .............................................................
--------------------------
٧٧ ................................................................. ﺍﻟﺒﺎﺏ ﳋﺎﻣﺲ "ﺟﺪﻭﻝ ﺍﳌﺮﺟﻊ"
٧۸ .......................................................... ﻃﺮﻕ ﺍﺳﺘﺨﺪﺍﻡ ﺻﻔﺤﺔ ﺟﺪﻭﻝ ﺍﳌﺮﺟﻊ
٧٩ ﺷﻜﻞ ﺻﻔﺤﺔ ﺟﺪﻭﻝ ﺍﳌﺮﺟﻊ .......................................................................
--------------------------
۸٧ ............................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺴﺎﺩﺱ "ﺍﻟﱪﺍﻣﺞ ﺍﻟﻔﺮﻋﻴﺔ"
۸٩ ......................................................... ﻃﺮﻕ ﺍﺳﺘﺨﺪﺍﻡ ﺻﻔﺤﺔ ﺍﻟﱪﺍﻣﺞ ﺍﻟﻔﺮﻋﻴﺔ
٩٠ ﺷﺮﺡ ﺟﺪﻭﻝ ﺍﻟـ ................................................................. var table
--------------------------
ﺍﻟﻔﻬﺮﺱ
--------------------------
۱۱٣ .................................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺜﺎﻣﻦ "ﺍﻟﻨﻈﻢ ﺍﻟﻌﻤﻠﻴﺔ"
۱۱٤ ﺷﺮﺡ ﺍﻟﻨﻈﻢ ﺍﻟﻌﻤﻠﻴﺔ
....................................................................................
--------------------------
۱٤٥ ............................................................. ﺍﻟﺒﺎﺏ ﺍﻟﻌﺎﺷﺮ "ﺑﺮﺍﻣﺞ ﺍﻟﺘﺤﻜﻢ "
۱٤٦ ﺑﺮﺍﻣﺞ ﺍﻟﺘﺤﻜﻢ
............................................................................................
--------------------------
۱٦۱ ................................................................ ﺍﻟﺒﺎﺏ ﺍﳊﺎﺩﻯ ﻋﺸﺮ "ﺍﶈﻮﻻﺕ"
۱٦٢ ﺍﶈﻮﻻﺕ
.....................................................................................................
--------------------------
۱۸٣ .............................................................. ﺍﻟﺒﺎﺏ ﺍﻟﺜﺎﻟﺚ ﻋﺸﺮ "ﺍﻟﻌﻼﻣﺎﺕ"
۱۸٤ ﺍﻟﻌﻼﻣﺎﺕ
...................................................................................................