Professional Documents
Culture Documents
Modbus Maher
Modbus Maher
ﻣﺸﺘﻤﻞ ﺑﺮ :
1-4ﻣﻘﺪﻣﻪ
ﻣﺤﻤﺪرﺿﺎ ﻣﺎﻫﺮ
1384
ﺷﺒﻜﻪ MODBUS 2
1-4ﻣﻘﺪﻣﻪ
Schneider Electric Modbusﻳﻚ ﭘﺮوﺗﻜﻞ ارﺗﺒﺎﻃﻲ اﺳﺖ و اﺑﺘﺪا در ﺳﺎل 1979ﺗﻮﺳﻂ Modiconﻛﻪ اﻣﺮوزه
آﻧﺮا در ﺑﺮ ﮔﺮﻓﺘﻪ ﻋﺮﺿﻪ ﺷﺪ .ﻛﺎرﺑﺮد اوﻟﻴﻪ آن ﺑﺮاي اﺳﺘﻔﺎده در PLCﻫﺎ ﺑﻮد وﻟﻲ ﺑﺘﺪرﻳﺞ ﺑﻌﻨﻮان ﻳﻚ اﺳﺘﺎﻧﺪارد
Modbus ارﺗﺒﺎﻃﻲ ﭘﺬﻳﺮﻓﺘﻪ ﺷﺪ و ﺑﺴﻴﺎري از ﺳﺎزﻧﺪﮔﺎن ﺗﺠﻬﻴﺰات اﺗﻮﻣﺎﺳﻴﻮن آن را ﭘﺸﺘﻴﺒﺎﻧﻲ ﻛﺮدﻧﺪ ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ
ﺑﺼﻮرت ﻳﻚ اﺳﺘﺎﻧﺪارد ﺑﺎز در آﻣﺪ ﺑﮕﻮﻧﻪ اي ﻛﻪ ﻣﺤﺼﻮﻻت ﺳﺎزﻧﺪﮔﺎن ﻣﺨﺘﻠﻒ ﺑﺴﻬﻮﻟﺖ ﺗﻮﺳﻂ اﻳﻦ ﭘﺮوﺗﻜﻞ ﺑﺎ
ﻳﻜﺪﻳﮕﺮ ارﺗﺒﺎط ﺑﺮﻗﺮار ﻛﺮدﻧﺪ .ﺳﺎزﻧﺪﮔﺎن وﺳﺎﻳﻞ ﻛﻮﭼﻚ ﻧﻴﺰ ﺗﺮﺟﻴﺢ دادﻧﺪ اﻳﻦ ﭘﺮوﺗﻜﻞ را ﺑﺎ ارﺗﺒﺎط RS232ﻳﺎ
RS485روي وﺳﺎﻳﻞ ﺧﻮد ﺑﻜﺎر ﺑﺒﺮﻧﺪ ﺗﺎ اﺳﺘﻔﺎده از آﻧﻬﺎ در ﭘﺮوژه ﻫﺎي ﺑﺰرگ ﻣﻴﺴﺮ ﮔﺮدد.
Modbusﺑﻪ دﻟﻴﻞ اﺳﺘﻔﺎده از ﻟﻴﻨﻚ ﻫﺎي ﺳﺮﻳﺎل RS232/RS485داراي ﻣﺤﺪودﻳﺖ ﻫﺎي ﺷﺪ ﻛﻪ ﺑﻪ ﺑﺮﺧﻲ از آﻧﻬﺎ
اﺷﺎره ﻣﻴﮕﺮدد:
ﻛﻨﺪ ﺑﻮدن ﺧﻄﻮط ﺳﺮﻳﺎل ﻛﻪ ﺑﻴﻦ 9600ﺗﺎ 115000ﺑﻴﺖ در ﺛﺎﻧﻴﻪ ﻛﺎر ﻣﻴﻜﻨﻨﺪ ﻳﻌﻨﻲ در ﻣﺎﻛﺰﻳﻤﻢ ﺣﺎﻟﺖ
0.115 Mbpsﻛﻪ اﻳﻦ ﺳﺮﻋﺖ در ﻣﻘﺎﻳﺴﻪ ﺑﺎ ﺷﺒﻜﻪ ﻫﺎي ارﺗﺒﺎﻃﻲ اﻣﺮوزي ﻛﻪ 100Mbpsﻳﺎ ﺣﺘﻲ ﭼﻨﺪ Gbps
اﻳﻨﺮو ﺑﺮاي ارﺗﺒﺎط دادن ﺗﻌﺪاد زﻳﺎدي وﺳﺎﻳﻞ ﻣﺜﻼً 500وﺳﻴﻠﻪ ﻧﻴﺎز ﺑﻪ ارﺗﺒﺎﻃﺎت ﭘﻴﭽﻴﺪه درﺧﺘﻲ ﺷﻜﻞ اﺳﺖ.
ارﺗﺒﺎط ﺳﺮﻳﺎل Modbusﺑﺼﻮرت Master/Slaveاﺳﺖ ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ روي ﺑﺎس ﻓﻘﻂ ﻳﻚ وﺳﻴﻠﻪ
ﺑﺎ وﺟﻮد اﻳﻦ ﻣﺤﺪودﻳﺖ ﻫﺎ ﭘﺮوﺗﻜﻞ Modbusدر ﻋﺮﺻﻪ اﺗﻮﻣﺎﺳﻴﻮن ﺟﺎﻳﮕﺎه وﻳﮋه ﺧﻮد را ﭘﻴﺪا ﻛﺮد.
3 ﺷﺒﻜﻪ MODBUS
ﺑﺮﺧﻲ از وﻳﮋﮔﻴﻬﺎي ﭘﺮوﺗﻜﻞ Modbusﻧﻈﻴﺮ ﻓﺮﻣﺖ ﻓﺮﻳﻢ ﻫﺎ و ﺗﻮاﻟﻲ آﻧﻬﺎ و ﻓﺎﻧﻜﺸﻦ ﻫﺎي ﻛﺎرﺑﺮدي ﻓﻴﻜﺲ ﻫﺴﺘﻨﺪ
ﺑﺮﺧﻲ دﻳﮕﺮ ﻣﺎﻧﻨﺪ وﺳﻴﻠﻪ و ﻣﺪ اﻧﺘﻘﺎل ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﻗﺎﺑﻞ اﻧﺘﺨﺎب ﻫﺴﺘﻨﺪ.اﻳﻦ وﻳﮋﮔﻴﻬﺎ وﻗﺘﻲ ﺳﻴﺴﺘﻢ در ﺣﺎل ﻛﺎر
اﺳﺖ ﻗﺎﺑﻞ ﺗﻐﻴﻴﺮ ﻧﻤﻲ ﺑﺎﺷﻨﺪ.
Modbusداراي ﺳﻪ ﻧﺴﺨﻪ اﺻﻠﻲ زﻳﺮ اﺳﺖ ﻛﻪ وﻳﮋﮔﻲ ﻫﺎي آﻧﻬﺎ ﺑﺎ ﻫﻢ ﻣﺘﻔﺎوﺗﻨﺪ:
Modbus RTU/ASCIIﻛﻪ ﺑﺼﻮرت ﺳﺮﻳﺎل روي RS485ﻳﺎ RS232ﻛﺎر ﻣﻴﻜﻨﺪ.
Modbus Plusﻛﻪ ﺑﺼﻮرت Token Passو ﺑﺎ ﺳﺮﻋﺖ ﺑﺎﻻ ﻃﺮاﺣﻲ ﺷﺪه اﺳﺖ.
ﺷﻜﻞ زﻳﺮ ﻧﻤﻮﻧﻪ اي از ﺷﺒﻜﻪ Modbusﻛﻪ در آن ﻫﺮ ﺳﻪ ﻧﻮع ﭘﺮوﺗﻜﻞ ﻓﻮق اﻟﺬﻛﺮ ﺑﻜﺎر رﻓﺘﻪ اﻧﺪ را ﻧﺸﺎن ﻣﻴﺪﻫﺪ:
ﺷﻜﻞ زﻳﺮ ﻣﺪل OSIرا ﺑﺮاي اﻧﻮاع ﭘﺮوﺗﻜﻞ ﻫﺎي Modbusﻧﺸﺎن ﻣﻲ دﻫﺪ.
ﺷﺒﻜﻪ MODBUS 4
RTUﻓﺸﺮده و ﺳﺮﻳﻊ ﻛﻪ ﺑﺮاي ﻛﺎر ﻧﺮﻣﺎل ﺑﻜﺎر ﻣﻴﺮود) .ﻓﺮﻣﺖ ﻫﮕﺰادﺳﻴﻤﺎل(
ﻣﺪ RTUﻛﻪ ﺑﻌﻀﺎً ﺑﻪ آن Modbus-Bﺑﻌﻨﻮان Modbus Binaryﮔﻔﺘﻪ ﻣﻴﺸﻮد ﻣﺪ اﺻﻠﻲ اﺳﺖ.ﻣﺪ ASCIIﻛﻪ
ﺑﻌﻀﺎً ﺑﻪ آن Modbus-Aﻧﻴﺰﮔﻔﺘﻪ ﻣﻴﺸﻮد ﺑﺮاي ﺑﺮﺧﻲ ﭘﻴﻐﺎم ﻫﺎ ﺑﻜﺎر ﻣﻴﺮود اﻳﻦ ﭘﻴﻐﺎم ﻫﺎ ﻃﻮل ﺷﺎن دوﺑﺮاﺑﺮ ﭘﻴﻐﺎم ﻫﺎي
RTUﻣﻲ ﺑﺎﺷﺪ.
اﻳﻦ ﭘﺮوﺗﻜﻞ از ﻻﻳﻪ ﻫﺎي 1و 2و 7ﻣﺪل OSIاﺳﺘﻔﺎده ﻣﻴﻜﻨﺪ .ﻛﻪ در اﻳﻨﺠﺎ ﺑﻪ ﺗﺸﺮﻳﺢ آﻧﻬﺎ ﻣﻲ ﭘﺮدازﻳﻢ.
1-2-4ﻻﻳﻪ ﻓﻴﺰﻳﻜﻲ
در ﻻﻳﻪ ﻓﻴﺰﻳﻜﻲ Modbusاز RS232 , RS485اﺳﺘﻔﺎده ﻣﻴﻜﻨﺪ RS232 .ﺑﺼﻮرت ﻧﻘﻄﻪ ﺑﻪ ﻧﻘﻄﻪ P-t-Pﺑﺴﺘﻪ
ﻣﻴﺸﻮد وﻟﻲ RS485ﻋﻼوه ﺑﺮ P-t-Pﻣﻴﺘﻮاﻧﺪ ﺑﺼﻮرت Multipointﻧﻴﺰ ﺑﺴﺘﻪ ﺷﻮد ﻳﻌﻨﻲ ﭼﻨﺪﻳﻦ دﺳﺘﮕﺎه روي ﻳﻚ
5 ﺷﺒﻜﻪ MODBUS
ﺑﺎس ﻗﺮار ﮔﻴﺮﻧﺪ .در اﻳﻨﺤﺎﻟﺖ ﺑﺎس ﻣﻌﻤﻮﻻً 2ﺳﻴﻤﻪ اﺳﺖ اﮔﺮﭼﻪ اﻣﻜﺎن اﺗﺼﺎل 4ﺳﻴﻤﻪ ﻧﻴﺰ وﺟﻮد دارد ﻛﻪ ﺗﺸﺮﻳﺢ
ﺧﻮاﻫﺪ ﺷﺪ.
Modbusﺑﺼﻮرت RS485 2-2-4اﺗﺼﺎل
در اﻳﻦ ﺣﺎﻟﺖ وﺳﺎﻳﻞ ﺑﺼﻮرت ﻣﻮازي روي ﻛﺎﺑﻞ ) Trunkﺑﺎس اﺻﻠﻲ ﺷﺒﻜﻪ( ﺑﻪ ﻳﻜﻲ از ﺳﻪ ﺻﻮرت زﻳﺮ ﺑﺴﺘﻪ
ﻣﻴﺸﻮﻧﺪ:
ﺑﺼﻮرت Daisy Chain .1
ﺑﺼﻮرت Passive Tapو از ﻃﺮﻳﻖ ﻛﺎﺑﻞ اﻧﺸﻌﺎﺑﻲ ) (Derivation Cableوﻗﺘﻲ وﺳﻴﻠﻪ ﻣﺠﻬﺰ ﺑﻪ .2
اﻳﻨﺘﺮﻓﻴﺲ Modbusﺑﺎﺷﺪ
ﺑﺼﻮرت Active Tapو ﺑﺎ ﻛﺎﺑﻞ AUIوﻗﺘﻲ وﺳﻴﻠﻪ ﻣﺠﻬﺰ ﺑﻪ اﻳﻨﺘﺮﻓﻴﺲ Modbusﻧﺒﺎﺷﺪ .3
ﺷﻜﻞ زﻳﺮ ﺳﻪ ﻧﻮع ارﺗﺒﺎط ذﻛﺮ ﺷﺪه را ﻧﺸﺎن ﻣﻴﺪﻫﺪ:
ﻳﻚ Tapﻣﻤﻜﻦ اﺳﺖ داراي ﭼﻨﺪﻳﻦ ﺳﻮﻛﺖ IDvﺑﺮاي اﺗﺼﺎل ﭼﻨﺪ وﺳﻴﻠﻪ ﺑﺎﺷﺪ ﻛﻪ دراﻳﻨﺤﺎﻟﺖ ﺑﻪ
اﺗﺼﺎل RS485ﻣﻴﺘﻮاﻧﺪ دوﺳﻴﻤﻪ ﻳﺎ ﭼﻬﺎر ﺳﻴﻤﻪ ﺑﺎﺷﺪ ).ﺷﻜﻞ ﺻﻔﺤﻪ ﺑﻌﺪ ( اﺗﺼﺎل 4ﺳﻴﻤﻪ اﺧﺘﻴﺎري ) (optionalاﺳﺖ
Master در اﻳﻨﺤﺎﻟﺖ ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺷﻜﻞ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ از 5رﺷﺘﻪ ﻛﺎﺑﻞ 2 ،رﺷﺘﻪ )ﻳﻚ زوج( ﻣﺮﺑﻮط ﺑﻪ
اﺳﺖ ﻛﻪ RXD0 , RXD1ﻧﺎﻣﻴﺪه ﻣﻴﺸﻮد Slave .دﻳﺘﺎي Masterرا از ﻃﺮﻳﻖ اﻳﻦ دو رﺷﺘﻪ درﻳﺎﻓﺖ ﻣﻴﻜﻨﺪ .ﭘﺎﺳﺦ
Slaveاز ﻃﺮﻳﻖ دو ﺳﻴﻢ دﻳﮕﺮ TXD1و TXD0ﺑﻪ Masterارﺳﺎل ﻣﻴﮕﺮدد .رﺷﺘﻪ ﭘﻨﺠﻢ ﻧﻴﺰ ﺑﺮاي اﺗﺼﺎل ﻣﺸﺘﺮك
) (Commonاﺳﺘﻔﺎده ﻣﻲ ﮔﺮدد.
7 MODBUS ﺷﺒﻜﻪ
: ﺳﻴﻤﻪ در ﺟﺪاول ﺑﻌﺪ آورده ﺷﺪه اﺳﺖ4 ﺳﻴﻤﻪ و2 وﺿﻌﻴﺖ ﺧﻄﻮط ﺳﻴﮕﻨﺎل ﺑﺮاي اﺗﺼﺎل
در اﺗﺼﺎل 4ﺳﻴﻤﻪ ﻛﺎﺑﻞ اﻧﺸﻌﺎب ﺑﺼﻮرت Crossﻣﺘﺼﻞ ﻣﻴﺸﻮد )ﻣﻄﺎﺑﻖ ﺟﺪول زﻳﺮ( .ﺑﻬﺘﺮﻳﻦ روش اﺗﺼﺎل در 4
ﺳﻴﻤﻪ اﺳﺘﻔﺎده از Tapﻫﺎﻳﻲ اﺳﺖ ﻛﻪ روي ﺧﻮدﺷﺎن اﺗﺼﺎﻻت را Crossﻛﺮده اﻧﺪ.
در اﺗﺼﺎل 2ﺳﻴﻤﻪ ﻛﺎﺑﻞ اﻧﺸﻌﺎﺑﻲ ﻧﺒﺎﻳﺪ Crossﺑﺴﺘﻪ ﺷﻮد.
ﺑﻴﻦ ﺳﻴﺴﺘﻢ 4ﺳﻴﻤﻪ و 2ﺳﻴﻤﻪ ﻣﻲ ﺗﻮان ﺳﺎزﮔﺎري ﺑﺮﻗﺮار ﻛﺮد .دو ﺣﺎﻟﺖ زﻳﺮ را در ﻧﻈﺮ ﺑﮕﻴﺮﻳﺪ:
ﺣﺎﻟﺖ اول :اﮔﺮ ﺳﻴﺴﺘﻢ 4ﺳﻴﻤﻪ اي از ﻗﺒﻞ ﻣﻮﺟﻮد ﺑﺎﺷﺪ و ﺑﺨﻮاﻫﻴﻢ از آن ﺑﻌﻨﻮان 2ﺳﻴﻤﻪ اﺳﺘﻔﺎده ﻛﻨﻴﻢ ﻻزم اﺳﺖ
ﺳﻴﻢ ﻫﺎي ﺳﻴﮕﻨﺎل TXD0و RXD0را ﺑﻪ ﻫﻢ ﺑﺒﻨﺪﻳﻢ ﺗﺎ ﺧﻂ D0اﻳﺠﺎد ﺷﻮد .
ﺳﻴﻢ ﻫﺎي ﺳﻴﮕﻨﺎل TXD1و RXD1را ﺑﻪ ﻫﻢ ﺑﺒﻨﺪﻳﻢ ﺗﺎ ﺧﻂ D1اﻳﺠﺎد ﺷﻮد .
ﺣﺎﻟﺖ دوم :اﮔﺮ ﺳﻴﺴﺘﻢ 2ﺳﻴﻤﻪ اي از ﻗﺒﻞ ﻣﻮﺟﻮد ﺑﺎﺷﺪ و ﺑﺨﻮاﻫﻴﻢ وﺳﻴﻠﻪ اي 4ﺳﻴﻤﻪ را ﺑﻪ آن ﻣﺘﺼﻞ ﻛﻨﻴﻢ ﻻزم
اﺳﺖ روي وﺳﻴﻠﻪ :
ﺳﻴﻢ ﻫﺎي ﺳﻴﮕﻨﺎل TXD0و RXD0را ﺑﻪ ﺳﻴﻢ D0ﺑﺒﻨﺪﻳﻢ.
در اﺗﺼﺎل RS485ﭼﻪ ﺑﺼﻮرت 2ﺳﻴﻤﻪ و ﭼﻪ ﺑﺼﻮرت 4ﺳﻴﻤﻪ در ﻧﻈﺮ داﺷﺘﻦ ﻧﻜﺎت زﻳﺮ ﺿﺮوري اﺳﺖ:
ﺑﻄﻮر ﻣﻌﻤﻮل ﺑﺪون رﻳﭙﻴﺘﺮ ﻣﺎﻛﺰﻳﻤﻢ 32وﺳﻴﻠﻪ را ﻣﻴﺘﻮان روي Modbus RS485ﻣﺘﺼﻞ ﻧﻤﻮد.
ﺗﻮﭘﻮﻟﻮژي اﺗﺼﺎل ﺑﺼﻮرت Busاﺳﺖ ﻛﻪ ﻣﻴﺘﻮاﻧﺪ Daisy Chainﻳﺎ Tap and Dropﺑﺎﺷﺪ.
ﻃﻮل ﻛﺎﺑﻞ Trunkﻣﺤﺪود اﺳﺖ اﻳﻦ ﻣﺤﺪودﻳﺖ ﺑﺴﺘﮕﻲ ﺑﻪ ﺳﺮﻋﺖ اﻧﺘﻘﺎل دﻳﺘﺎ ،ﻣﺸﺨﺼﺎت ﻛﺎﺑﻞ) از
ﺟﻤﻠﻪ ﺧﺎزن ﻛﺎﺑﻞ( ،ﺗﻌﺪاد Nodeﻫﺎي ﻣﺘﺼﻞ ﺷﺪه ﺑﺼﻮرت Daisy Chainو ﻧﻴﺰ 2ﺳﻴﻤﻪ ﻳﺎ 4ﺳﻴﻤﻪ
ﺷﺒﻜﻪ MODBUS 10
ﺑﻮدن ﺳﻴﺴﺘﻢ دارد .ﺑﺮاي ﺳﺮﻋﺖ 9600 bpsﺑﺎ ﻛﺎﺑﻞ AWG26ﻳﺎ ﺿﺨﻴﻢ ﺗﺮ و ﺳﻴﺴﺘﻢ 2ﺳﻴﻤﻪ اﻳﻦ ﻃﻮل
1000ﻣﺘﺮ اﺳﺖ .ﺑﺮاي ﺳﻴﺴﺘﻢ 4ﺳﻴﻤﻪ ﺑﺎ ﻣﺸﺨﺼﺎت ﻓﻮق اﻳﻦ ﻃﻮل ﺑﻪ ﻧﺼﻒ ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ
ﻃﻮل ﻛﺎﺑﻞ اﻧﺸﻌﺎﺑﻲ ﻛﻮﺗﺎه ﺑﺎﺷﺪ و از 20ﻣﺘﺮ ﺗﺠﺎوز ﻧﻜﻨﺪ .ﻛﻼً اﮔﺮ nاﻧﺸﻌﺎب وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﺑﺮاي
دوﻃﺮف ﻛﺎﺑﻞ Trunkﻳﻌﻨﻲ ﺑﺎس اﺻﻠﻲ ﺗﻮﺳﻂ ﺗﺮﻣﻴﻨﻴﺘﻮر ﺑﺴﺘﻪ ﺷﻮد .ﻫﺮ زوج ﺳﻴﻢ دﻳﺘﺎ در دوﻃﺮف
ﺗﺮﻣﻴﻨﻴﺘﻮر ﻣﻴﺘﻮاﻧﺪ ﻳﻚ ﻣﻘﺎوﻣﺖ 150اﻫﻤﻲ ﺑﺎﺷﺪ .در ﺑﺮﺧﻲ ﻛﺎرﺑﺮدﻫﺎ از ﻣﻘﺎوﻣﺖ 120اﻫﻤﻲ ﻛﻪ ﺑﺎ ﺧﺎزن
450ﺗﺎ 650اﻫﻢ ﺑﺎﺷﺪ در ﻳﻜﻄﺮف اﺳﺘﻔﺎده ﻣﻴﮕﺮدد .ﻣﻨﻈﻮر از ﭘﻼرﻳﺰه ﻛﺮدن ﺧﻂ ﻣﺼﻮن ﻧﮕﻪ داﺷﺘﻦ
ﺑﺎس از ﺗﺪاﺧﻞ و ﻧﻮﻳﺰ در ﺣﺎﻟﺘﻲ اﺳﺖ ﻛﻪ روي ﺧﻂ ﻫﻴﭻ دﻳﺘﺎﻳﻲ ﺗﺒﺎدل ﻧﻤﻴﺸﻮد ﻻزم اﺳﺖ در اﻳﻨﺤﺎﻟﺖ
ﮔﻴﺮﻧﺪه ﺣﺎﻟﺖ ﺛﺎﺑﺖ ﺧﻮد را ﺣﻔﻆ ﻛﻨﺪ.
ﻣﻘﺎوﻣﺖ Pull upروي ﺧﻂ D1و ﺑﻪ وﻟﺘﺎژ 5وﻟﺖ ﻣﺘﺼﻞ ﻣﻴﮕﺮدد.
ﻣﺎﻛﺰﻳﻤﻢ وﺳﺎﻳﻞ ﻣﺠﺎز روي Modbusﺑﺎ ﭘﻼرﻳﺰاﺳﻴﻮن ﺑﻪ ﻳﻚ ﭼﻬﺎرم ﺣﺎﻟﺖ ﻧﺮﻣﺎل ﻛﺎﻫﺶ ﻣﻲ ﻳﺎﺑﺪ.
11 ﺷﺒﻜﻪ MODBUS
ﺑﺮاي ﻣﺴﺎﻓﺖ ﻫﺎي ﻛﻮﺗﺎه )ﻣﻌﻤﻮﻻً( ﻛﻤﺘﺮ از 20ﻣﺘﺮ ﺑﻜﺎر ﻣﻲ رود.
اﺗﺼﺎل ﺑﻴﻦ دو وﺳﻴﻠﻪ DCEو DTEروي Modbus RS232ﺑﺼﻮرت ﺟﺪول زﻳﺮ اﺳﺖ .در اﻳﻦ
ﺟﺪول ﻣﻮاردي ﻛﻪ ﺑﺎ Xﻣﺸﺨﺺ ﺷﺪه ﺑﺮاي اﻳﺠﺎد ارﺗﺒﺎط ﻛﺎﻓﻲ اﺳﺖ .
ﺳﺮ ﺳﻴﻢ TXDاز ﻳﻚ ﺳﻤﺖ ﺑﺎ ﺳﺮ ﺳﻴﻢ RXDﻃﺮف ﻣﻘﺎﺑﻞ ﻣﺮﺗﺒﻂ ﻣﻴﺸﻮد.
ﻣﻤﻜﻦ اﺳﺖ RTSﺑﻪ CTSﺳﻤﺖ ﻣﻘﺎﺑﻞ و DTRﺑﻪ DSRﺳﻤﺖ ﻣﻘﺎﺑﻞ وﺻﻞ ﺷﻮد.
Required on Required on
Signal For DCE )DCE (1 )DTE (1 Description
Common -- X X Signal Common
CTS In Clear to Send
DCD -- ) Data Carrier Detected ( from DCE to DTE
DSR In Data Set Ready
DTR Out Data Terminal Ready
RTS Out Request to Send
RXD In X X Received Data
TXD Out X X Transmitted Data
.ﭘﻴﻦ ﻫﺎي ﻣﺮﺑﻮﻃﻪ ﺑﺮاي ﻛﺎﻧﻜﺘﻮرﻫﺎي ﻓﻮق در ﺟﺪول زﻳﺮ ﻣﺸﺨﺺ ﮔﺮدﻳﺪه اﻧﺪ
Pin Pin IDv ITr
on on Level of Circuit Circuit EIA/TIA-
RJ45 D9- Description for IDv
requirement 485 name
shell
3 3 optional PMC -- -- Port Mode Control
4 5 required D1 D1 B/B’ Transceiver terminal 1, V1
Voltage ( V1 > V0 for
binary 1 [OFF] state )
5 9 required D0 D0 A/A’ Transceiver terminal 0, V0
Voltage ( V0 > V1 for
binary 0 [ON] state )
7 Positive 5...24 V D.C.
2 recommended VP -- --
Power Supply
8 1 required Common Common C/C’ Signal and Power Supply
Common
. ﺳﻴﻤﻪ در ﺻﻔﺤﻪ ﺑﻌﺪ آورده ﺷﺪه اﺳﺖ4 ﻛﺎﻧﻜﺘﻮرﻫﺎ و ﻣﺸﺨﺼﺎت ﭘﻴﻦ ﻫﺎ ﺑﺮاي ﺳﻴﺴﺘﻢ
ﺑﻪ رﻧﮓ زرد ﺑﺎﺷﺪ درD1 ﺳﻴﻢ، ﺑﻪ رﻧﮓ ﻗﻬﻮه ايD0 ﺳﻴﻢ، ﺳﻴﻤﻪ2 ﺳﻴﺴﺘﻢModbus ﭘﻴﺸﻨﻬﺎد ﺷﺪه ﻛﻪ در ﻛﺎﺑﻞ
ﺑﻪ رﻧﮓ ﺳﻔﻴﺪ و ﺳﻴﻢRXD0 ﺑﻜﺎر رﻓﺘﻪ و ﺳﻴﻢTXD1 وTXD0 ﺳﻴﻤﻪ اﻳﻨﺪو ﺑﺎ ﻫﻤﻴﻦ رﻧﮕﻬﺎ ﺑﺮاي4 ﺳﻴﺴﺘﻢ
اﺳﺘﻔﺎده از اﻳﻦ رﻧﮓ ﻫﺎ اﻟﺰاﻣﻲ. ﺳﻴﻢ ﻣﺸﺘﺮك در ﻫﺮ دو ﺳﻴﺴﺘﻢ ﺧﺎﻛﺴﺘﺮي رﻧﮓ اﺳﺖ. ﺑﻪ رﻧﮓ آﺑﻲ ﺑﺎﺷﺪRXD1
. رﻧﮓ ﺑﻨﺪي ﻣﺘﻔﺎوت ﺧﻮاﻫﺪ ﺑﻮدCate 5 ﻧﻴﺴﺖ ﻛﻤﺎ اﻳﻨﻜﻪ در اﺳﺘﻔﺎده از ﻛﺎﺑﻞ
13 MODBUS ﺷﺒﻜﻪ
4 Generator terminal 1, Vb
5 required TXD1 TXD1 B Voltage ( Vb > Va for
binary 1 [OFF] state )
5 Generator terminal 0, Va
9 required TXD0 TXD0 A Voltage ( Va > Vb for
binary 0 [ON] state )
7 Positive 5...24 V DC
2 recommended VP -- --
Power Supply
8
Signal and Power Supply
1 required Common Common C/C’
Common
ﺷﺒﻜﻪ MODBUS 14
ﻣﺪ : Broadcastدر اﻳﻦ ﺣﺎﻟﺖ Masterﭘﻴﺎم ﺧﻮد را ﺑﻪ ﺗﻤﺎم Slaveﻫﺎ ﻣﻴﻔﺮﺳﺘﺪ وﻟﻲ ﻫﻴﭻ ﭘﺎﺳﺨﻲ ﺑﻪ .2
Masterﺑﺮ ﻧﻤﻴﮕﺮدد .اﻳﻦ ﻣﺪ از ﺟﻤﻠﻪ ﺑﺮاي ﻧﻮﺷﺘﻦ ﻓﺮاﻣﻴﻦ ) (Writing Commandsﺑﻜﺎر ﻣﻴﺮود.
ﺑﺮاي ﻣﺪ Broadcastآدرس ﺻﻔﺮ رزرو ﺷﺪه اﺳﺖ.
15 ﺷﺒﻜﻪ MODBUS
ﺑﻄﻮر ﻛﻠﻲ روش آدرس دﻫﻲ در Modbusﻣﺎﻧﻨﺪ ﺟﺪول ﺑﻌﺪ اﺳﺖ .ﺑﺎﻳﺪ ﺗﻮﺟﻪ داﺷﺖ ﻛﻪ Masterﻧﻴﺎز ﺑﻪ ﻫﻴﭻ
آدرس ﺧﺎﺻﻲ ﻧﺪارد و ﺻﺮﻓﺎً Slaveﻫﺎ ﻫﺴﺘﻨﺪ ﻛﻪ ﻧﻴﺎز ﺑﻪ آدرس دارﻧﺪ.
ﻓﺮﻳﻢ اﻃﻼﻋﺎت
ﭘﺮوﺗﻜﻞ Modbusداراي (Protocol Data Unint )PDUﻫﺎي ﺳﺎده اي ﻣﺎﻧﻨﺪ ﺷﻜﻞ زﻳﺮ اﺳﺖ.
دﻳﺘﺎﻫﺎي دﻳﮕﺮي ﻧﻴﺰ ﺑﺎ PDUﺟﻤﻊ ﺷﺪه و ﻓﺮﻳﻢ دﻳﺘﺎ را ﻣﻲ ﺳﺎزﻧﺪ .اﻳﻦ ﻓﺮﻳﻢ در ﺳﻤﺖ Masterﺳﺎﺧﺘﻪ ﻣﻴﺸﻮد
Unicastآدرس را در اﻳﻦ ﻓﻴﻠﺪ ﻗﺮار ﻣﻲ دﻫﺪ و Slaveﻧﻴﺰ وﻗﺘﻲ ﭘﺎﺳﺦ ﻣﻴﺪﻫﺪ آدرس ﺧﻮدش را در
اﻳﻦ ﻓﻴﻠﺪ ﻣﻲ ﮔﺬارد ﺗﺎ Masterﺑﻔﻬﻤﺪ ﻛﺪام Slaveﭘﺎﺳﺦ داده اﺳﺖ.
Function Codeﻧﺸﺎن دﻫﻨﺪه ﻋﻤﻠﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ اﻧﺠﺎم ﺷﻮد )(Action ﻓﻴﻠﺪ
آﻳﺪ.در اﻳﻦ وﺿﻌﻴﺖ Masterﭘﻴﺎﻣﻲ را ﺑﺼﻮرت Broadcastارﺳﺎل ﻣﻲ دارد ﺳﭙﺲ وﺿﻌﻴﺖ Idleرا
ﺗﺮك ﻣﻲ ﻛﻨﺪ.
ﺷﺒﻜﻪ MODBUS 16
وﻗﺘﻲ درﺧﻮاﺳﺘﻲ ﺑﺼﻮرت Unicastﺑﻪ Slaveﺧﺎﺻﻲ ارﺳﺎل ﺷﺪ Master ،ﻣﻨﺘﻈﺮ ﺟﻮاب ﻣﻲ ﻣﺎﻧﺪ اﻣﺎ
وﻗﺘﻲ ﭘﺎﺳﺦ درﻳﺎﻓﺖ ﺷﺪ Masterﻗﺒﻞ از ﭘﺮدازش دﻳﺘﺎ ،ﭘﺎﺳﺦ را ﭼﻚ ﻣﻴﻜﻨﺪ ﻣﻤﻜﻦ اﺳﺖ اﺷﻜﺎﻟﻲ
وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﻣﺜﻼً Slaveدﻳﮕﺮي ﭘﺎﺳﺦ داده ﺑﺎﺷﺪ ﻳﺎ در ﻓﺮﻳﻢ دﻳﺘﺎي درﻳﺎﻓﺖ ﺷﺪه ﺧﻄﺎﻳﻲ رخ داده
ﺑﺎﺷﺪ دراﻳﻨﺠﺎ ﻧﻴﺰ Time outﭼﻚ ﻣﻴﺸﻮد ﺗﺎ ﺑﻠﻜﻪ در زﻣﺎن ﺗﻌﻴﻴﻦ ﺷﺪه ﭘﺎﺳﺦ ﺻﺤﻴﺢ از Slaveﺑﺮﺳﺪ .اﮔﺮ
Masterﺑﻪ وﺿﻌﻴﺖ Idle ﭘﺎﺳﺨﻲ درﻳﺎﻓﺖ ﻧﺸﺪ و Time outﺑﻪ ﺳﺮ رﺳﻴﺪ ﺳﻴﮕﻨﺎل Errorﺗﻮﻟﻴﺪ ﻣﻴﺸﻮد و
ﻣﻴﺮود و ﺗﻼش دوﺑﺎره ﺑﺴﺘﻪ ﺑﻪ ﺗﻨﻈﻴﻤﺎت اﻧﺠﺎم ﺷﺪه روي Retryاﻧﺠﺎم ﻣﻴﺸﻮد.
وﻗﺘﻲ درﺧﻮاﺳﺘﻲ ﺑﺼﻮرت Broadcastروي ﺑﺎس ﺳﺮﻳﺎل ارﺳﺎل ﻣﻲ ﺷﻮد ﭘﺎﺳﺨﻲ از ﻃﺮف Slaveﻫﺎ
داده ﻧﺸﺪه ﺑﺎ اﻳﻦ وﺟﻮد Masterﺗﺎﺧﻴﺮي را ﺑﺮاي ارﺳﺎل ﭘﻴﺎم ﻣﻮرد ﻧﻈﺮ ﺑﻌﺪي در ﻧﻈﺮ ﻣﻲ ﮔﻴﺮد ﺗﺎ ﻣﻄﻤﺌﻦ
ﺷﻮد Slaveﻫﺎ ﭘﻴﺎم اوﻟﻴﻪ را ﮔﺮﻓﺘﻪ اﻧﺪ ﺑﻪ اﻳﻦ ﺗﺎﺧﻴﺮ Turnaround Delayﻣﻴﮕﻮﻳﻨﺪ Master .ﻗﺒﻞ از
ﺑﺮﮔﺸﺖ ﺑﻪ وﺿﻌﻴﺖ Idleو آﻣﺎدﮔﻲ ﺑﺮاي ارﺳﺎل ﭘﻴﺎم ﺑﻌﺪي ﻟﺤﻈﺎﺗﻲ را ﺑﺼﻮرت اﻧﺘﻈﺎر ﻣﻴﮕﺬراﻧﺪ ﻛﻪ در
دﻳﺎﮔﺮام ﻓﻮق ﺑﻌﻨﻮان Waiting Turnaround Delayآﻣﺪه اﺳﺖ اﻳﻦ زﻣﺎن ﻻزم اﺳﺖ ﺑﻪ ﺣﺪ ﻛﺎﻓﻲ
ﻃﻮﻻﻧﻲ ﺑﺎﺷﺪ ﺗﺎ Slaveﻫﺎ ﻓﺮﻣﺎن را ﭘﺮدازش ﻛﺮده و ﺑﺮاي ﮔﺮﻓﺘﻦ دﻳﺘﺎي ﺑﻌﺪي آﻣﺎده ﺷﻮﻧﺪ.
در ﺣﺎﻟﺖ Unicastزﻣﺎن Time outﺑﺎﻳﺴﺘﻲ در ﺣﺪ ﻣﻨﺎﺳﺐ و ﻛﺎﻓﻲ ﺗﻨﻈﻴﻢ ﺷﺪه ﺑﺎﺷﺪ ﺗﺎ Slaveﺑﺘﻮاﻧﺪ در
ﻃﻮل آن ﻣﺪت درﺧﻮاﺳﺖ را ﭘﺮدازش ﻛﺮده و ﺟﻮاب را اراﺋﻪ دﻫﺪ ﻣﻌﻤﻮﻻً اﻳﻦ زﻣﺎن ﻛﻪ ﺑﻪ آن
Response Timeﻣﻴﮕﻮﻳﻨﺪ ﺑﺮاي ﺳﺮﻋﺖ 9600 bpsﺑﻴﻦ ﻳﻚ ﺗﺎ ﭼﻨﺪ ﺛﺎﻧﻴﻪ ﺗﻨﻈﻴﻢ ﻣﻲ ﺷﻮد.
زﻣﺎن Turnaround Delayﺑﺎﻳﺴﺘﻲ ﻛﻤﺘﺮ از زﻣﺎن Response Timeﺑﺎﺷﺪ .اﻳﻦ ﺗﺎﺧﻴﺮ ﺑﺮاي ﺳﺮﻋﺖ
ﻣﻘﺪار ﻣﻲ ﮔﻴﺮد دوم ﭼﻚ Redundancyﺑﺮاي ﻛﻞ دﻳﺘﺎي داﺧﻞ ﻓﺮﻳﻢ .اﻳﻦ ﻣﻮارد ﺑﻌﺪاً ﺗﺸﺮﻳﺢ ﺧﻮاﻫﻨﺪ
ﺷﺪ.
دﻳﺎﮔﺮام وﺿﻌﻴﺖ Slave
رﻓﺘﺎر Slaveدر دﻳﺎﮔﺮام زﻳﺮ آﻣﺪه اﺳﺖ ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻴﺸﻮد در اﻳﻨﺠﺎ ﻧﻴﺰ وﺿﻌﻴﺖ Idleوﺿﻌﻴﺖ اوﻟﻴﻪ
ﭘﺲ از وﺻﻞ ﺗﻐﺬﻳﻪ اﺳﺖ .وﻗﺘﻲ درﺧﻮاﺳﺖ درﻳﺎﻓﺖ ﺷﺪ Slaveﺑﺴﺘﻪ دﻳﺘﺎ را ﻗﺒﻞ از اﻳﻨﻜﻪ Actionﻣﻮرد
درﺧﻮاﺳﺖ در آن را اﻧﺠﺎم دﻫﺪ ﭼﻚ ﻣﻴﻜﻨﺪ .در ﺻﻮرﺗﻲ ﻛﻪ اﺷﻜﺎﻻﺗﻲ ﻣﺎﻧﻨﺪ اﺷﻜﺎل در ﻓﺮﻣﺖ ﻓﺮﻳﻢ درﺧﻮاﺳﺖ ﻳﺎ
Actionﻧﺎﺷﻨﺎﺧﺘﻪ و اﻣﺜﺎل آن وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ ﭘﺎﺳﺨﻲ ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه وﺟﻮد اﺷﻜﺎل اﺳﺖ ﺑﻪ Masterاﻋﻼم
ﻣﻴﮕﺮدد .در ﻏﻴﺮ اﻳﻨﺼﻮرت Actionرا اﻧﺠﺎم داده و ﺳﭙﺲ ﭘﻴﺎم ﻣﻮرد ﻧﻴﺎز را ﺑﻪ Masterﺑﺮ ﻣﻲ ﮔﺮداﻧﺪ.
19 ﺷﺒﻜﻪ MODBUS
دﻳﺎﮔﺮام زﻣﺎﻧﻲ ارﺗﺒﺎط Master /Slaveﻛﻪ ﺳﻪ ﺳﻨﺎرﻳﻮي ﻣﺨﺘﻠﻒ را ﻧﺸﺎن ﻣﻴﺪﻫﺪ در ﺻﻔﺤﻪ ﺑﻌﺪ آﻣﺪه اﺳﺖ .ﺗﻮﺟﻪ
داﺷﺘﻪ ﺑﺎﺷﻴﺪ ﻛﻪ ﻃﻮل ﻣﺪت ﻓﺎزﻫﺎي Requestو Replyو Broadcastﺑﺴﺘﮕﻲ ﺑﻪ ﻣﺸﺨﺼﺎت ارﺗﺒﺎﻃﻲ از ﺟﻤﻠﻪ
Slave ﻃﻮل ﻓﺮﻳﻢ دارد .ﻫﻤﭽﻨﻴﻦ ﻃﻮل ﻓﺎزﻫﺎي Waitو Treatmentﺑﺴﺘﮕﻲ ﺑﻪ زﻣﺎن ﭘﺮدازش درﺧﻮاﺳﺖ ﺗﻮﺳﻂ
دارد.
MODBUS ﺷﺒﻜﻪ 20
21 ﺷﺒﻜﻪ MODBUS
Start 1 2 3 4 5 6 7 8 Par Stop 8ﺑﻴﺖ ﺑﺮاي دﻳﺘﺎ
ﻣﻌﻤﻮﻻً Parityزوج ﺑﺼﻮرت ﭘﻴﺶ ﻓﺮض ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻴﮕﻴﺮد اﮔﺮﭼﻪ Parityﻓﺮد ﻳﺎ ﺣﺘﻲ ﺑﺪون ﭼﻚ
Parityﻧﻴﺰ ﻣﻴﺘﻮاﻧﺪ ﺑﻜﺎر رود .ﺣﺎﻟﺖ اﺧﻴﺮ ﺑﺮاي اﻃﻤﻴﻨﺎن از ﻣﺎﻛﺰﻳﻤﻢ ﺳﺎزﮔﺎري ﺑﺎ ﻣﺤﺼﻮﻻت ﻣﺨﺘﻠﻒ ﭘﻴﺸﻨﻬﺎد
ﻣﻴﺸﻮد در اﻳﻦ ﺣﺎﻟﺖ 2ﺑﻴﺖ ﭘﺎﻳﺎﻧﻲ ﻣﻮرد ﻧﻴﺎز اﺳﺖ ﺷﻜﻞ زﻳﺮ:
Start 1 2 3 4 5 6 7 8 Stop Stop
ﻓﺮﻣﺖ ﻛﻠﻲ ﻓﺮﻳﻢ ﻛﻪ ﺷﺎﻣﻞ ﻛﺎراﻛﺘﺮﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺖ در ﻣﺪ RTUﺑﺼﻮرت زﻳﺮ اﺳﺖ .ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه
ﻣﻴﺸﻮد ﻣﺎﻛﺰﻳﻤﻢ ﻃﻮل ﻓﺮﻳﻢ در اﻳﻦ ﻣﺪ ﺑﺮاﺑﺮ 256ﺑﺎﻳﺖ ﻣﻴﺒﺎﺷﺪ و ﻣﺎﻛﺰﻳﻤﻢ ﻣﻘﺪار دﻳﺘﺎ 253ﺑﺎﻳﺖ اﺳﺖ.
ﺑﻴﻦ ﻓﺮﻳﻢ ﻫﺎ ﻳﻚ ﻓﺎﺻﻠﻪ زﻣﺎﻧﻲ وﺟﻮد دارد ﻛﻪ ﺣﺪاﻗﻞ ﺑﻪ اﻧﺪازه 3.5ﻛﺎراﻛﺘﺮ اﺳﺖ و ﺑﻪ آن ﻓﺎﺻﻠﻪ ﺧﺎﻣﻮﺷﻲ ﻧﻴﺰ
ﻣﻴﮕﻮﻳﻨﺪ( Silent Interval ).
ﺷﺒﻜﻪ MODBUS 22
اﮔﺮ ﺑﻴﻦ دو ﻛﺎراﻛﺘﺮ ﻣﺘﻮاﻟﻲ ﻳﻚ ﻓﺮﻳﻢ ﺗﺎﺧﻴﺮي ﺑﻴﺶ از 1.5ﻛﺎراﻛﺘﺮ ﭘﻴﺶ ﺑﻴﺎﻳﺪ ﻧﺸﺎن دﻫﻨﺪه اﺷﻜﺎل اﺳﺖ.
اﻳﻦ ﻓﻮاﺻﻞ زﻣﺎﻧﻲ ﻛﻪ ﺑﻪ ﺗﺎﻳﻤﺮﻫﺎي t1.5و t3.5ﻧﻴﺰ ﻣﻌﺮوف اﺳﺖ ﺑﺮاي ﻛﻨﺘﺮل ﻧﻴﺎز ﺑﻪ وﻗﻔﻪ ﻫﺎي زﻳﺎد دارد ﻛﻪ در
ﺳﺮﻋﺘﻬﺎي ﺑﺎﻻ ﺑﺎر زﻳﺎدي را ﺑﻪ CPUﺗﺤﻤﻴﻞ ﻣﻴﻜﻨﺪ و ﺑﻬﺘﺮ اﺳﺖ در ﺳﺮﻋﺘﻬﺎي ﺑﺎﻻ زﻣﺎن اﻳﻦ ﺗﺎﻳﻤﺮﻫﺎ ﻓﻴﻜﺲ
ﺷﻮﻧﺪ.ﭘﻴﺸﻨﻬﺎد ﻣﻴﺸﻮد ﺑﺮاي t1.5زﻣﺎن 750ﻣﻴﻜﺮوﺛﺎﻧﻴﻪ و ﺑﺮاي t3.5زﻣﺎن 1750ﻣﻴﻠﻲ ﺛﺎﻧﻴﻪ ﺑﻜﺎر ﺑﺮده ﺷﻮد.
دﻳﺎﮔﺮام وﺿﻌﻴﺖ ﻣﺪ RTUدر ﺷﻜﻞ ﺑﻌﺪ آﻣﺪه اﺳﺖ ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﺸﺎﻫﺪه ﻣﻴﺸﻮد :
ﮔﺬر از وﺿﻌﻴﺖ initialﺑﻪ Idleﻧﻴﺎز ﺑﻪ ﮔﺬﺷﺖ زﻣﺎن t3.5دارد ﺗﺎ ﺗﺎﺧﻴﺮ ﻻزم ﺑﻮﺟﻮد آﻳﺪ.
وﺿﻌﻴﺖ Idleوﻗﺘﻲ ﻛﻪ ارﺳﺎل ﻳﺎ درﻳﺎﻓﺘﻲ اﻧﺠﺎم ﻧﻤﻴﺸﻮد ﺑﻌﻨﻮان وﺿﻌﻴﺖ ﻧﺮﻣﺎل ﺗﻠﻘﻲ ﻣﻴﺸﻮد.
وﻗﺘﻲ ﺳﻴﺴﺘﻢ در وﺿﻌﻴﺖ Idleاﺳﺖ ﻫﺮ ﻛﺎراﻛﺘﺮي ﻛﻪ ﭘﺲ از آن ارﺳﺎل ﺷﻮدﺑﻌﻨﻮان ﺷﺮوع ﻓﺮﻳﻢ
ﻣﺤﺴﻮب ﺷﺪه و ﺳﻴﺴﺘﻢ را ﺑﻪ ﺣﺎﻟﺖ Activeﻣﻲ ﺑﺮد.ﺳﭙﺲ اﮔﺮ ﺑﺎ ﮔﺬﺷﺖ زﻣﺎن t3.5ﻛﺎراﻛﺘﺮي
ارﺳﺎل ﻧﺸﺪ ﺑﻌﻨﻮان ﭘﺎﻳﺎن ﻓﺮﻳﻢ ﺗﻠﻘﻲ ﻣﻲ ﮔﺮدد.
ﭘﺲ از آﺷﻜﺎر ﺷﺪن ﭘﺎﻳﺎن ﻓﺮﻳﻢ ﻓﻴﻠﺪ CRCﭼﻚ ﻣﻴﺸﻮد و ﺑﺪﻧﺒﺎل آن ﻓﻴﻠﺪ آدرس آﻧﺎﻟﻴﺰ ﻣﻴﺸﻮد ﺗﺎ
ﻣﺸﺨﺺ ﺷﻮد ﻛﻪ ﻓﺮﻳﻢ ﻣﺮﺑﻮط ﺑﻪ ﻫﻤﻴﻦ وﺳﻴﻠﻪ اﺳﺖ ﻳﺎ ﺧﻴﺮ .اﮔﺮ ﺗﻄﺎﺑﻖ ﻧﺪاﺷﺖ ﻓﺮﻳﻢ ﺣﺬف ﻣﻴﺸﻮد.
ﺑﺮاي ﻛﺎﻫﺶ زﻣﺎن ﭘﺮدازش ﻓﻴﻠﺪ آدرس ﻣﻴﺘﻮاﻧﺪ ﺑﻪ ﻣﺤﺾ درﻳﺎﻓﺖ ﻓﺮﻳﻢ و ﺑﺪون اﻧﺘﻈﺎر ﺑﺮاي ﭘﺎﻳﺎن آن
آﻧﺎﻟﻴﺰ ﺷﻮدﺑﺪﻳﻬﻲ اﺳﺖ CRCدرﺻﻮرﺗﻲ ﻣﺤﺎﺳﺒﻪ و ﭼﻚ ﻣﻴﺸﻮد ﻛﻪ ﻓﺮﻳﻢ ﻣﺮﺑﻮط ﺑﻪ ﻫﻤﻴﻦ وﺳﻴﻠﻪ ﺑﺎﺷﺪ.
23 MODBUS ﺷﺒﻜﻪ
ﺷﺒﻜﻪ MODBUS 24
MSB -3ﺷﻴﻔﺖ داد ن رﺟﻴﺴﺘﺮ CRCﻳﻚ ﺑﻴﺖ ﺑﻪ راﺳﺖ و وارد ﻛﺮدن ﺻﻔﺮ از ﺳﻤﺖ دﻳﮕﺮ ﻳﻌﻨﻲ ﺳﻤﺖ
ﻳﺎ Most Significant Bit
ﺑﻄﻮر ﺧﻼﺻﻪ اﻟﮕﻮرﻳﺘﻢ ﻣﺤﺎﺳﺒﻪ CRCدر ﺻﻔﺤﻪ ﺑﻌﺪ آورده ﺷﺪه و ﺑﺮﻧﺎﻣﻪ اي ﻧﻴﺰ ﺑﻌﻨﻮان ﻧﻤﻮﻧﻪ ﺑﺮاي ﻣﺤﺎﺳﺒﻪ آن
ذﻛﺮ ﮔﺮدﻳﺪه اﺳﺖ .ﺑﺎز ﺑﺮاي روﺷﻦ ﺷﺪن دﻗﻴﻘﺘﺮ ﻣﻮﺿﻮع ﻣﺜﺎﻟﻲ در اداﻣﻪ آورده ﺷﺪه اﺳﺖ.
25 MODBUS ﺷﺒﻜﻪ
BEGIN
ErrorWord = Hex (FFFF)
FOR Each byte in message
ErrorWord = ErrorWord XOR byte in message
FOR Each bit in byte
LSB = ErrorWord AND Hex (0001)
IF LSB = 1 THEN ErrorWord = ErrorWord – 1
ErrorWord = ErrorWord / 2
IF LSB = 1 THEN ErrorWord = ErrorWord XOR Hex (A001)
NEXT bit in byte
NEXT Byte in message
MODBUS ﺷﺒﻜﻪ 26
END
27 ﺷﺒﻜﻪ MODBUS
Start 1 2 3 4 5 6 7 Par Stop
ﻧﻮع Parityﺷﺒﻴﻪ آﻧﭽﻪ ﺑﺮاي RTUذﻛﺮ ﺷﺪ زوج ﺑﻮده وﻟﻲ اﻧﻮاع دﻳﮕﺮ ﻧﻴﺰ ﻗﺎﺑﻞ اﺳﺘﻔﺎده اﺳﺖ.
ﻧﺤﻮه ارﺳﺎل ﻧﻴﺰ ﺷﺒﻴﻪ RTUاﺳﺖ ﻳﻌﻨﻲ از ﺑﻴﺖ LSBﺷﺮوع و ﺗﺎ ﺑﻴﺖ MSBاداﻣﻪ ﻣﻲ ﻳﺎﺑﺪ.
ﻓﺮﻳﻢ ﭘﻴﺎم در ﻣﺪ ASCII
ﻫﺮ ﻓﺮﻳﻢ ASCIIاز ﺑﺨﺸﻬﺎﻳﻲ ﻣﺎﻧﻨﺪ ﺷﻜﻞ زﻳﺮ ﺗﺸﻜﻴﻞ ﺷﺪه اﺳﺖ:
ﻛﺎراﻛﺘﺮ ﺷﺮوع ﻳﻚ ﻛﺎراﻛﺘﺮ ﻛﻪ ) Colonﻳﻌﻨﻲ ( :اﺳﺖ و ﻫﮕﺰ آن 3Aاﺳﺖ ﻣﻲ ﺑﺎﺷﺪ .ﺗﺠﻬﻴﺰات ﻣﺘﺼﻞ ﺑﻪ
ﺑﺎس ﻣﺮﺗﺒﺎً ﺑﺎس را ﺑﺮاي ﻳﺎﻓﺘﻦ اﻳﻦ ﻛﺎراﻛﺘﺮ ﻣﺎﻧﻴﺘﻮر ﻣﻲ ﻛﻨﻨﺪ .وﻗﺘﻲ اﻳﻦ ﻛﺎراﻛﺘﺮ درﻳﺎﻓﺖ ﺷﺪ وﺳﻴﻠﻪ ﻛﺎراﻛﺘﺮ ﺑﻌﺪي
را ﻣﻲ ﮔﻴﺮد ﻛﻪ آدرس را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ و اﮔﺮ آدرس ﺑﻪ او ﻣﺮﺑﻮط ﺑﻮد ﺳﺎﻳﺮ ﻛﺎراﻛﺘﺮﻫﺎ را درﻳﺎﻓﺖ ﻣﻴﻜﻨﺪ ﺗﺎ ﺑﺴﺘﻪ
ﺑﻪ ﭘﺎﻳﺎن ﺑﺮﺳﺪ .ﻛﺎراﻛﺘﺮ ﭘﺎﻳﺎﻧﻲ Carriage Retun-Line Feedﻳﺎ CRLFاﺳﺖ ﻛﻪ ﻛﺪ اﺳﻜﻲ آن 0Dو ﻛﺪ ﻫﮕﺰ
آن 0Aﻣﻴﺒﺎﺷﺪ.
ﺑﻴﻦ رﺷﺘﻪ ﻛﺎراﻛﺘﺮﻫﺎي داﺧﻞ ﭘﻴﺎم ﻣﻤﻜﻦ اﺳﺖ ﻓﺎﺻﻠﻪ زﻣﺎﻧﻲ ﺗﺎ ﻳﻚ ﺛﺎﻧﻴﻪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ .ﻛﺎرﺑﺮ ﺑﺎ ﭘﻴﻜﺮﺑﻨﺪي
Time outﻣﻴﺘﻮاﻧﺪ ﻣﺸﺨﺺ ﻛﻨﺪ ﻛﻪ اﮔﺮ زﻣﺎن ﺑﻴﺶ از ﻳﻚ ﺛﺎﻧﻴﻪ ﺑﺎﺷﺪ ﭘﻴﺎم ﺧﻄﺎ اﻋﻼم ﺷﻮد.ﺑﺮﺧﻲ از ﺷﺒﻜﻪ ﻫﺎي
وﺳﻴﻊ ﻣﻤﻜﻦ اﺳﺖ ﺑﻪ time outﺑﻴﻦ 4ﺗﺎ 5ﺛﺎﻧﻴﻪ ﻧﻴﺎز داﺷﺘﻪ ﺑﺎﺷﺪ.
ﻫﺮ ﺑﺎﻳﺖ دﻳﺘﺎ ﻧﻴﺎز ﺑﻪ 2ﻛﺎراﻛﺘﺮ ﺑﺮاي ﻛﺪ ﻛﺮدن دﻳﺘﺎ داردﺑﻨﺎﺑﺮاﻳﻦ ﺑﺮاي اﻃﻤﻴﻨﺎن از ﺳﺎزﮔﺎري ﺑﻴﻦ ﻣﺪﻫﺎي ASCIIو
RTUﻣﺎﻛﺰﻳﻤﻢ ﺳﺎﻳﺰ اﺧﺘﺼﺎص ﻳﺎﻓﺘﻪ 2x252ﻛﺎراﻛﺘﺮ اﺳﺖ ﻳﻌﻨﻲ دو ﺑﺮاﺑﺮﺳﺎﻳﺰ دﻳﺘﺎي . RTUﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ ﺳﺎﻳﺰ
ﺷﺒﻜﻪ MODBUS 28
ﻛﻞ ﻓﺮﻳﻢ ﻣﻄﺎﺑﻖ ﺷﻜﻞ ﺑﺎﻻ 513ﻛﺎراﻛﺘﺮ ﺧﻮاﻫﺪ ﺑﻮد.ﻛﻨﺘﺮل ﺧﻄﺎ در اﻳﻦ ﻣﺪ ﺗﻮﺳﻂ LRCاﻧﺠﺎم ﻣﻴﺸﻮد ﻛﻪ ﺗﺸﺮﻳﺢ
ﺧﻮاﻫﺪ ﺷﺪ.
دﻳﺎﮔﺮام وﺿﻌﻴﺖ ﻣﺪ اﻧﺘﻘﺎل ASCII
اﻳﻦ دﻳﺎﮔﺮام ﻛﻪ ﻫﻢ وﺿﻌﻴﺖ Masterو ﻫﻢ وﺿﻌﻴﺖ Slaveرا ﻧﺸﺎن ﻣﻴﺪﻫﺪ در ﺷﻜﻞ زﻳﺮ آﻣﺪه اﺳﺖ.
: وﺿﻌﻴﺖ Idleوﺿﻌﻴﺘﻲ اﺳﺖ ﻛﻪ در آن ﻫﻴﭻ ارﺳﺎل ﻳﺎ درﻳﺎﻓﺘﻲ روي ﺑﺎس اﻧﺠﺎم ﻧﻤﻴﺸﻮد .درﻳﺎﻓﺖ ﻫﺮ ﻛﺎراﻛﺘﺮ
ﺑﻪ ﻣﻌﻨﻲ ﺷﺮوع ﭘﻴﺎم ﺟﺪﻳﺪ اﺳﺖ .اﮔﺮ ﭘﻴﺎﻣﻲ ﻫﻨﻮز ﺗﻤﺎم ﻧﺸﺪه ﻣﺠﺪداً ﻛﺎراﻛﺘﺮ :ﺑﺮﺳﺪ در اﻳﻨﺼﻮرت ﭘﻴﺎم ﻗﺒﻠﻲ ﻣﻨﺘﻔﻲ
ﺗﻠﻘﻲ ﻣﻴﮕﺮدد .ﺑﺎ درﻳﺎﻓﺖ ﺷﺪن ﻛﺎراﻛﺘﺮ ﭘﺎﻳﺎﻧﻲ ﻳﻌﻨﻲ ، CRLFﻣﺤﺎﺳﺒﻪ و ﭼﻚ LRCﺷﺮوع ﻣﻴﺸﻮد.
29 ﺷﺒﻜﻪ MODBUS
ﻳﻜﻲ ﺑﻮد آﻧﺮا ﺑﻌﻨﻮان ﻳﻚ ﭘﻴﺎم ﺻﺤﻴﺢ ﻣﻲ ﭘﺬﻳﺮد LRC.ﺑﺎ ﺟﻤﻊ ﻛﺮدن ﺗﻤﺎم ﺑﺎﻳﺘﻬﺎي داﺧﻞ ﭘﻴﺎم ﺑﺪون ﺑﻴﺖ ﻫﺎي ذﻛﺮ
ﺷﺪه وﺳﭙﺲ ﻣﺘﻤﻢ دو ﻛﺮدن ﻧﺘﻴﺠﻪ ﻣﺤﺎﺳﺒﻪ ﻣﻴﺸﻮد ﻃﺒﻖ ﻗﺪم ﻫﺎي زﻳﺮ:
-1ﺟﻤﻊ ﻛﺮدن ﺑﺎﻳﺘﻬﺎي ﭘﻴﺎم و رﻳﺨﺘﻦ آﻧﻬﺎ در ﻓﻴﻠﺪ 8ﺑﻴﺘﻲ ﺑﺪﻳﻬﻲ اﺳﺖ اﮔﺮ Carryﺗﻮﻟﻴﺪ ﺷﻮد از ﺑﻴﻦ
ﻣﻴﺮود.
-2ﻛﻢ ﻛﺮدن ﻣﻘﺪار ﻣﻨﺘﺠﻪ از ﻣﻘﺪار ﻫﮕﺰ FFﻳﻌﻨﻲ از 1111 1111ﺑﺮاي ﺗﻮﻟﻴﺪ ﻣﺘﻤﻢ ﻳﻚ
-3اﺿﺎﻓﻪ ﻛﺮدن ﻳﻚ ﺑﻪ ﻣﻘﺪار ﺣﺎﺻﻞ از ﻗﺪم دوم ﺗﺎ ﻣﺘﻤﻢ دو ﺑﺪﺳﺖ آﻳﺪ.
ﻣﻘﺪار ﻣﻨﺘﺠﻪ ﺑﺼﻮرت دو ﻛﺎراﻛﺘﺮ ﺑﻪ ﭘﻴﺎم اﺿﺎﻓﻪ ﻣﻴﺸﻮد .در اﻳﻨﺤﺎﻟﺖ ﺑﺮﺧﻼف CRCاﺑﺘﺪا ﻛﺎراﻛﺘﺮ ﺑﺎ ارزش ﺑﺎﻻﺗﺮ
و ﺳﭙﺲ ﻛﺎراﻛﺘﺮ ﺑﺎ ارزش ﭘﺎﻳﻴﻦ ﺗﺮ ﺑﻌﺪ از دﻳﺘﺎ ﻗﺮار ﻣﻴﮕﻴﺮد ﻣﺜﻼً اﮔﺮ ﻣﻘﺪار ﻣﻨﺘﺠﻪ 61ﻫﮕﺰ ﻳﻌﻨﻲ 0110 0001ﺑﺎﺷﺪ
ﺷﻜﻞ زﻳﺮ را ﺧﻮاﻫﻴﻢ داﺷﺖ:
ﻓﻴﻠﺪ Function Codeﻳﻚ ﺑﺎﻳﺖ اﺳﺖ ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺑﻴﻦ 1ﺗﺎ 255دﺳﻴﻤﺎل ﺑﺎﺷﺪ .ﻛﺪﻫﺎي 1ﺗﺎ 127ﺑﺮاي ﻛﺎر
ﻧﺮﻣﺎل و ﻛﺪﻫﺎي 128ﺗﺎ 255ﺑﺮاي ﭘﺎﺳﺦ ﻫﺎي Exceptionﻛﻪ ﺑﺮاي ﺷﺮاﻳﻂ ﺧﻄﺎ ﻃﺮاﺣﻲ ﺷﺪه ﺑﻜﺎر ﻣﻴﺮود .ﻓﻴﻠﺪ
Dataدر ﺑﺮﺧﻲ درﺧﻮاﺳﺖ ﻫﺎي ﺧﺎص ﻣﻤﻜﻦ اﺳﺖ ﺧﺎﻟﻲ ﺑﺎﺷﺪ ) ﻃﻮل ﺻﻔﺮ( اﻳﻦ در ﻣﻮاردي اﺳﺖ ﻛﻪ ارﺳﺎل
Actionﺑﻪ ﺗﻨﻬﺎﻳﻲ ﺑﺮاي Slaveﻛﻔﺎﻳﺖ ﻣﻴﻜﻨﺪ و اﻃﻼﻋﺎت اﺿﺎﻓﻲ ﻣﻮرد ﻧﻴﺎز ﻧﻴﺴﺖ.
وﻗﺘﻲ ﺧﻄﺎﻳﻲ وﺟﻮد ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ Slaveدرﺧﻮاﺳﺖ Masterرا اﻧﺠﺎم داده و در ﭘﺎﺳﺦ ﺧﻮد ﺑﻪ ﻫﻤﺎن ﻛﺪ ﻓﺎﻧﻜﺸﻦ
Slave اﺷﺎره ﻣﻴﻜﻨﺪ اﺻﻄﻼﺣﺎً ﮔﻔﺘﻪ ﻣﻴﺸﻮد ﻛﻪ ﻛﺪﻓﺎﻧﻜﺸﻦ اﻛﻮ ﺷﺪه اﺳﺖ .وﻟﻲ وﻗﺘﻲ اﺷﻜﺎﻟﻲ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ و
ﻧﺘﻮاﻧﺪ ﻋﻤﻞ ﻣﻮرد درﺧﻮاﺳﺖ Masterرا اﻧﺠﺎم دﻫﺪ در اﻳﻦ ﺣﺎﻟﺖ ﭘﺎﺳﺨﻲ ﻛﻪ در آن ﺑﺠﺎي ﻛﺪﻓﺎﻧﻜﺸﻦ ﻛﺪ
Exceptionآﻣﺪه ﺑﺮﮔﺸﺖ داده ﻣﻴﺸﻮد ﺗﺎ Masterاز ﺑﺮوز ﺧﻄﺎ ﻣﻄﻠﻊ ﺷﻮد.
ﺷﻜﻞ ﻫﺎي ﺑﻌﺪ اﻳﻦ دو ﺣﺎﻟﺖ را ﻧﻤﺎﻳﺶ ﻣﻴﺪﻫﺪ.
ﺷﺒﻜﻪ MODBUS 32
PDU ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﻴﺤﺎت ﻓﻮق و ﺗﻮﺟﻪ ﺑﻪ ﻧﻮع ﻓﺎﻧﻜﺸﻦ ﻫﺎ ﻣﺘﻮﺟﻪ ﻣﻲ ﺷﻮﻳﻢ ﻛﻪ در ﭘﺮوﺗﻜﻞ Modbusﺳﻪ ﻧﻮع
زﻳﺮ وﺟﻮد دارد:
Request PDU
Response PDU
Exception Response PDU
ﺑﺮ اﻳﻦ اﺳﺎس دﻳﺎﮔﺮام ﺗﺒﺎدل دﻳﺘﺎ روي Modbusﺑﺼﻮرت ﻧﺸﺎن داده در ﺷﻜﻞ ﺻﻔﺤﻪ ﺑﻌﺪ ﺧﻮاﻫﺪ ﺑﻮد.
-3
33 MODBUS ﺷﺒﻜﻪ
ﺷﺒﻜﻪ MODBUS 34
ﻓﺎﻧﻜﺸﻨﻬﺎي ﻋﻤﻮﻣﻲ
ﺷﻜﻞ زﻳﺮ ﻓﺎﻧﻜﺸﻨﻬﺎي ﻋﻤﻮﻣﻲ ﻗﺎﺑﻞ اﺳﺘﻔﺎده در Modbusرا ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻛﻪ ﺑﺮﺧﻲ از آﻧﻬﺎ در اداﻣﻪ ﺗﺸﺮﻳﺢ
ﺧﻮاﻫﻨﺪ ﺷﺪ.
ﻫﺮ وﺳﻴﻠﻪ ﻛﻪ روي ﺷﺒﻜﻪ Modbusﻗﺮار ﻣﻴﮕﻴﺮد داراي ﻳﻚ ﺟﺪول آدرس ﺑﺼﻮرت زﻳﺮ اﺳﺖ:
Primary tables Object type Type of access
Discretes Input Single bit Read-Only
Coils Single bit Read-Write
Input Registers 16-bit word Read-Only
Holding Registers 16-bit word Read-Write
در ﺣﺎﻓﻈﻪ وﺳﻴﻠﻪ ﻣﻤﻜﻦ اﺳﺖ ﻣﻮارد ﻓﻮق در ﻳﻚ ﻳﺎ ﭼﻨﺪ ﺑﻼك ﺑﺴﺘﻪ ﺑﻪ ﻧﻮع وﺳﻴﻠﻪ ﻣﻮﺟﻮد ﺑﺎﺷﻨﺪ ﺷﻜﻞ ﻫﺎي زﻳﺮ:
35 ﺷﺒﻜﻪ MODBUS
LSB در ﭘﺎﺳﺦ وﺿﻌﻴﺖ ﺧﺮوﺟﻲ ﻛﻪ 1ﺑﺮاي ONو 0ﺑﺮاي Offاﺳﺖ ﺗﻮﺳﻂ ﺑﻴﺘﻬﺎي دﻳﺘﺎ ﻣﺸﺨﺺ ﻣﻴﮕﺮدد .ﺑﻴﺖ
وﺿﻌﻴﺖ ﺧﺮوﺟﻲ ﺑﺎ آدرس ﭘﺎﻳﻴﻦ ﺗﺮ را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ و ﻫﻤﻴﻦ ﻃﻮر ﺳﺎﻳﺮ ﺑﻴﺘﻬﺎ ﺑﺘﺮﺗﻴﺐ وﺿﻌﻴﺖ ﺳﺎﻳﺮ ﺧﺮوﺟﻲ ﻫﺎ
را ﻣﺸﺨﺺ ﻣﻲ ﻧﻤﺎﻳﻨﺪ .اﮔﺮ ﺗﻌﺪاد ﺧﺮوﺟﻲ ﻫﺎ ﻣﻀﺮﺑﻲ از 8ﻧﺒﺎﺷﺪ در اﻳﻨﺼﻮرت در ﺑﺎﻳﺖ آﺧﺮ ﺳﺎﻳﺮ ﺑﻴﺘﻬﺎي ﺑﺎﻗﻲ
ﻣﺎﻧﺪه ﺑﺎ ﺻﻔﺮ ﭘﺮ ﻣﻴﺸﻮﻧﺪ وﻟﻲ از آﻧﺠﺎ ﻛﻪ ﺗﻌﺪاد ﺧﺮوﺟﻲ ﻫﺎ ﻧﻴﺰ ﺑﺮﮔﺮداﻧﺪه ﻣﻲ ﺷﻮد Masterﻣﺘﻮﺟﻪ ﻣﻴﺸﻮد ﻛﻪ ﺗﺎ
ﻛﺠﺎ ﻣﺮﺑﻮط ﺑﻪ ﺧﺮوﺟﻲ ﻫﺎﺳﺖ.
Response
Function code 1 Byte 0x01
Byte count 1 Byte *N
Coil Status n Byte n = N or N+1
*N= Quantity of Outputs / 8, if the remainder is different of 0 N = N+1
ﻣﺜﺎل : 1در ﺟﺪول ﺻﻔﺤﻪ ﺑﻌﺪ ﻣﺜﺎﻟﻲ ﺑﺮاي ﺧﻮاﻧﺪن ﺧﺮوﺟﻲ ﻫﺎي 20ﺗﺎ 38ﻳﻌﻨﻲ ﺟﻤﻌﺎً 19ﺧﺮوﺟﻲ آﻣﺪه اﺳﺖ.
ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﺎﺳﺦ ﻣﺸﺎﻫﺪه ﻣﻲ ﻛﻨﻴﻢ ﻛﻪ ﻧﺘﻴﺠﻪ در ﺳﻪ ﺑﺎﻳﺖ رﻳﺨﺘﻪ ﺷﺪه اﺳﺖ:
ﺑﺎﻳﺖ اول :ﻧﺸﺎن دﻫﻨﺪه آدرس ﻫﺎي 27-20از ﭼﭗ ﺑﻪ راﺳﺖ اﺳﺖ ﻛﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ وﺿﻌﻴﺖ ﺧﺮوﺟﻲ ﻫﺎ
LSB 11001101ﻳﻌﻨﻲ ﻣﻌﺎدل CDﻫﮕﺰ ﺑﻮده اﺳﺖ در اﻳﻦ ﺑﺎﻳﺖ ﺑﻴﺖ MSBوﺿﻌﻴﺖ ﺧﺮوﺟﻲ 27و ﺑﻴﺖ
وﺿﻌﻴﺖ ﺧﺮوﺟﻲ 20را ﻧﺸﺎن ﻣﻲ دﻫﺪ.
ﺷﺒﻜﻪ MODBUS 36
Request Response
Field Name )(Hex Field Name )(Hex
Function 01 Function 01
Starting Address Hi 00 Byte Count 03
Starting Address Lo 13 Outputs status 27-20 CD
Quantity of Outputs Hi Quantity of 00 Outputs status 35-28 Outputs status 6B
Outputs Lo
13 38-36 05
ﺑﺎﻳﺖ دوم :ﻧﺸﺎن دﻫﻨﺪه آدرس ﻫﺎي 35-28از ﭼﭗ ﺑﻪ راﺳﺖ اﺳﺖ .ﻛﻪ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ وﺿﻌﻴﺖ ﺧﺮوﺟﻲ ﻫﺎ ﻣﻌﺎدل
ﻫﮕﺰ آن 6Bاﺳﺖ.
ﺑﺎﻳﺖ ﺳﻮم :ﻧﺸﺎن دﻫﻨﺪه آدرس ﻫﺎي 38-36ﻛﻪ ﻓﻘﻂ 3ﺑﻴﺖ ﻫﺴﺘﻨﺪ ﻣﻲ ﺑﺎﺷﺪ ﺳﺎﻳﺮ ﺑﻴﺖ ﻫﺎ ﺑﺎ ﺻﻔﺮ ﭘﺮ ﺷﺪه اﻧﺪ و
ﻣﻌﺎدل ﻫﮕﺰ 8ﺑﻴﺖ ﻋﺪد 05اﺳﺖ ﻳﻌﻨﻲ 0000 0101
ﻓﻠﻮﭼﺎرت ﺻﻔﺤﻪ ﺑﻌﺪ ﻧﺤﻮه ﻋﻤﻠﻜﺮد ﻓﺎﻧﻜﺸﻦ ﻛﺪ 01را ﺑﺮاي ﺧﻮاﻧﺪن ﺧﺮوﺟﻲ ﻧﺸﺎن ﻣﻲ دﻫﺪ ﻫﻤﺎﻧﻄﻮر ﻛﻪ
ﻣﻼﺣﻈﻪ ﻣﻴﺸﻮد در ﻫﺮ ﻣﺮﺣﻠﻪ اﮔﺮ ﺧﻄﺎﻳﻲ ﭘﻴﺶ ﺑﻴﺎﻳﺪ ﻛﺪ Exceptionﻣﺮﺑﻮﻃﻪ ﮔﺰارش ﻣﻴﺸﻮد.
ﻣﺜﺎل : 2در اﻳﻦ ﻣﺜﺎل Masterوﺿﻌﻴﺖ دو ﺧﺮوﺟﻲ ﻳﻜﻲ ﺧﺮوﺟﻲ ﻫﮕﺰ 000Aﻛﻪ ﺧﺮوﺟﻲ ﻳﺎزدﻫﻢ اﺳﺖ
)ﭼﻮن از ﺻﻔﺮ ﺷﺮوع ﺷﺪه( و ﻧﻴﺰ وﺿﻌﻴﺖ ﺧﺮوﺟﻲ 000Bﻛﻪ ﺧﺮوﺟﻲ دوازدﻫﻢ اﺳﺖ را از Slaveﻛﻪ آدرس
آن روي ﺑﺎس 01اﺳﺖ درﺧﻮاﺳﺖ ﻣﻴﻜﻨﺪ Slave .در ﭘﺎﺳﺦ ﺧﻮد اﻋﻼم ﻣﻲ ﻧﻤﺎﻳﺪ ﻛﻪ اﻳﻦ دو ﺧﺮوﺟﻲ روﺷﻦ
ﻫﺴﺘﻨﺪ ﻳﻌﻨﻲ ﻛﺪ 0000 0011ﻛﻪ ﻣﻌﺎدل ﻫﮕﺰ آن 03اﺳﺖ .ﺑﺪﻳﻬﻲ اﺳﺖ اﮔﺮ ﻣﺜﻼً ﭘﺎﺳﺦ ﻛﺪ ﻫﮕﺰ 02ﺑﻮد ﻣﻔﻬﻮم
آن ﺧﺎﻣﻮش ﺑﻮدن اوﻟﻲ و روﺷﻦ ﺑﻮدن دوﻣﻲ ﻣﻴﺸﺪ.
37 MODBUS ﺷﺒﻜﻪ
ﻓﺎﻧﻜﺸﻦ ﻛﺪﻫﺎي 03و 04ﻧﻴﺰ ﺑﺮاي ﺧﻮاﻧﺪن ورودي ﻫﺎ و ﺧﺮوﺟﻲ ﻫﺎ از روي رﺟﻴﺴﺘﺮ وﺳﻴﻠﻪ ﺑﻜﺎر ﻣﻴﺮوﻧﺪ ﻛﻪ
اﺻﻮل ﻛﺎر آﻧﻬﺎ ﺑﺎ آﻧﺠﻪ ﺑﺮاي ﻛﺪ ﻓﺎﻧﻜﺸﻦ ﻫﺎي 01و 02ﮔﻔﺘﻪ ﺷﺪ ﻳﻜﻲ اﺳﺖ.ﻟﺬا از ﺗﺸﺮﻳﺢ آﻧﻬﺎ ﺧﻮد داري ﻣﻲ
ﻛﻨﻴﻢ و ﺻﺮﻓﺎً ﺑﻪ ذﻛﺮ ﻣﺜﺎﻟﻲ ﺑﺮاي آﻧﻬﺎ ﺑﺴﻨﺪه ﻣﻲ ﻧﻤﺎﻳﻴﻢ.
ﻣﺜﺎل زﻳﺮ ﺧﻮاﻧﺪن آدرس ﻫﺎي 108ﺗﺎ 110رﺟﻴﺴﺘﺮ را ﺗﻮﺳﻂ Masterﺑﺎ ﻓﺎﻧﻜﺸﻦ ﻛﺪ 03ﻧﺸﺎن ﻣﻲ دﻫﺪ.
Request Response
Field Name )(Hex Field Name )(Hex
Function 03 Function 03
Starting Address Hi 00 Byte Count 06
Starting Address Lo 6B )Register value Hi (108 02
No. of Registers Hi 00 )Register value Lo (108 2B
No. of Registers Lo 03 )Register value Hi (109 00
)Register value Lo (109 00
Register value Hi (110) Register 00
)value Lo (110 64
ﻣﺤﺘﻮﻳﺎت رﺟﻴﺴﺘﺮ 108ﺑﺎ دو ﺑﺎﻳﺖ ﻛﻪ در آن ﻣﻘﺪار 022Bﻫﮕﺰ آﻣﺪه ﮔﺰارش ﺷﺪه ﻛﻪ ﻣﻌﺎدل 255دﺳﻴﻤﺎل
اﺳﺖ .ﻣﺤﺘﻮﻳﺎت رﺟﻴﺴﺘﺮ 109ﻣﻌﺎدل 0000ﻫﮕﺰ و رﺟﻴﺴﺘﺮ 110ﻣﻌﺎدل 0064ﻫﮕﺰ ﻳﻌﻨﻲ 100دﺳﻴﻤﺎل ﮔﺰارش
ﮔﺮدﻳﺪه اﺳﺖ.
ﻣﺜﺎل زﻳﺮ ﺧﻮاﻧﺪن Input Registerﺷﻤﺎره 9را ﺗﻮﺳﻂ ﻓﺎﻧﻜﺸﻦ ﻛﺪ 04ﻧﺸﺎن ﻣﻲ دﻫﺪ .ﻣﺤﺘﻮﻳﺎت اﻳﻦ رﺟﻴﺴﺘﺮ
ﺑﺼﻮرت دو ﺑﺎﻳﺖ ﺣﺎوي 000Aﻫﮕﺰ ﻳﻌﻨﻲ ﻋﺪد 10دﺳﻴﻤﺎل ﮔﺰارش ﺷﺪه اﺳﺖ.
Request Response
Field Name )(Hex Field Name )(Hex
Function 04 Function 04
Starting Address Hi 00 Byte Count 02
Starting Address Lo 08 Input reg 9 Hi 00
Quantity of Input Reg. Hi 00 Input Reg 9 Lo 0A
Quantity of Input Reg. Lo 01
39 MODBUS ﺷﺒﻜﻪ
Response
Error
Error code 1 Byte 0x85
Exception code 1 Byte 01 or 02 or 03 or 04
ﻣﻨﻈﻮر0 ﻫﮕﺰ ) ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻳﻨﻜﻪ آدرﺳﻬﺎ از0A ﻳﻌﻨﻲ11 ﺑﺮاي ﺧﺮوﺟﻲ ﺷﻤﺎرهMaster در ﻣﺜﺎل زﻳﺮ:2 ﻣﺜﺎل
ﺑﺮ ﻣﻲ ﮔﺮدد ﻧﺸﺎن دﻫﻨﺪه ﺧﺎﻣﻮش ﺷﺪنSlave ﻛﻪ ﺗﻮﺳﻂ00 ﭘﺎﺳﺦ.ﻣﻴﺸﻮﻧﺪ( درﺧﻮاﺳﺖ ﺧﺎﻣﻮش ﺷﺪن ﻣﻴﻜﻨﺪ
.وﺳﻴﻠﻪ اﺳﺖ
ﺷﺒﻜﻪ MODBUS 40
دﻳﺎﮔﺮام ﻧﻮﺷﺘﻦ روي ﺧﺮوﺟﻲ ﻧﻴﺰ در زﻳﺮ ﻣﺜﺎل ﻓﻮق ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
41 MODBUS ﺷﺒﻜﻪ
. وﻟﻲ ﺑﺮاي ﻧﻮﺷﺘﻦ روي ﻳﻚ ﺑﻴﺖ از رﺟﻴﺴﺘﺮ ﺑﻜﺎر ﻣﻴﺮود05 ﺷﺒﻴﻪ06 ﻓﺎﻧﻜﺸﻦ ﻛﺪ
Response
Function code 1 Byte 0x0F
Error
Error code 1 Byte 0x8F
ﺧﺮوﺟﻲ ﻛﻪ از آدرس10 روي1100110100000001 ﻫﮕﺰ ﻛﻪ ﻣﻌﺎدلCD01 ﺑﻌﻨﻮان ﻣﺜﺎل ﺑﺮاي ارﺳﺎل ﻣﻘﺪار
: ﺷﺮوع ﻣﻴﺸﻮﻧﺪ روش ﺑﺼﻮرت زﻳﺮ اﺳﺖ20
ﻫﮕﺰCD ﻫﮕﺰ01
Bit: 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1
Output:
27 26 25 24 23 22 21 20 – – – – – –
29 28
ﺷﺒﻜﻪ MODBUS 42
ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ ﻣﻘﺪار 01ﻫﮕﺰ روي آدر ﺳﻬﺎي 28و 29ارﺳﺎل ﻣﻲ ﮔﺮدد و ﺳﺎﻳﺮ ﺑﻴﺘﻬﺎي اﺳﺘﻔﺎده ﻧﺸﺪه ﺑﺎ ﺻﻔﺮ ﭘﺮ
ﻣﻲ ﺷﻮﻧﺪ.
ﻓﺎﻧﻜﺸﻦ ﻛﺪ 16ﻧﻴﺰ ﺷﺒﻴﻪ ﻓﺎﻧﻜﺸﻦ ﻛﺪ 15وﻟﻲ ﺑﺮاي ﻧﻮﺷﺘﻦ روي ﭼﻨﺪﻳﻦ ﺑﻴﺖ از رﺟﻴﺴﺘﺮ ﺑﻜﺎر ﻣﻴﺮود.
Response PDU
Function code 1 Byte 0x14
Error
Error code 1 Byte 0x94
: درﺧﻮاﺳﺖ ﻣﻴﺸﻮﻧﺪRemote در ﻣﺜﺎل زﻳﺮ دو ﮔﺮوه رﻛﻮرد ﺑﺎ رﻓﺮﻧﺲ ﻫﺎي زﻳﺮ از روي وﺳﻴﻠﻪ
. ﺷﺮوع ﻣﻲ ﺷﻮﻧﺪ1 ﻛﻪ از آدرس4 ﺷﺎﻣﻞ دو رﺟﻴﺴﺘﺮ از ﻓﺎﻳﻞ ﺷﻤﺎره: 1 ﮔﺮوه
Request Response
Field Name (Hex) Field Name (Hex)
Function 14 Function 14
Byte Count 0C Resp. Data length 0E
Sub-Req. 1, Ref. Type 06 Sub-Req. 1, File resp. length 05
Sub-Req. 1, File Number Hi 00 Sub-Req. 1, Ref. Type 06
Sub-Req. 1, File Number Lo 04 Sub-Req. 1, Record. Data Hi 0D
Sub-Req. 1, Record number Hi 00 Sub-Req. 1, Record. Data Lo FE
Sub-Req. 1, Record number Lo 01 Sub-Req. 1, Record. Data Hi 00
Sub-Req. 1, Record Length Hi 00 Sub-Req. 1, Record. Data Lo 20
Sub-Req. 1, Record Length Lo 02 Sub-Req. 2, File resp. length 05
Sub-Req. 2, Ref. Type 06 Sub-Req. 2, Ref. Type 06
Sub-Req. 2, File Number Hi 00 Sub-Req. 2, Record. Data Hi 33
Sub-Req. 2, File Number Lo 03 Sub-Req. 2, Record. Data Lo CD
Sub-Req. 2, Record number Hi 00 Sub-Req. 2, Record. Data Hi 00
Sub-Req. 2, Record number Lo 09 Sub-Req. 2, Record. Data Lo 40
اﺳﺖ.
وﻗﺘﻲ وﺳﻴﻠﻪ درﺧﻮاﺳﺖ Masterرا ﺑﺪﻟﻴﻞ وﺟﻮد اﺷﻜﺎل ارﺗﺒﺎﻃﻲ درﻳﺎﻓﺖ ﻧﻤﻴﻜﻨﺪ ﭘﺎﺳﺨﻲ ﻫﻢ ﻧﻤﻲ دﻫﺪ .در
ﻣﺘﻮﺟﻪ ﻣﻴﺸﻮد ﻛﻪ ﺑﺮﺧﻲ از ﺑﻴﺘﻬﺎ در ﻫﻨﮕﺎم اﻧﺘﻘﺎل ﺧﺮاب ﺷﺪه اﻧﺪ در اﻳﻨﺤﺎﻟﺖ ﻧﻴﺰ ﭘﺎﺳﺨﻲ ﺑﺮﮔﺸﺖ داده
ﻧﻤﻴﺸﻮد و ﺑﺎز Masterﺑﺎ Time outﻣﺘﻮﺟﻪ اﺷﻜﺎل ﻣﻴﺸﻮد.
وﻗﺘﻲ وﺳﻴﻠﻪ درﺧﻮاﺳﺖ Masterرا ﺑﺪون ﺧﻄﺎ ﻫﺎي ﻓﻮق درﻳﺎﻓﺖ ﻣﻴﻜﻨﺪ وﻟﻲ ﻧﻤﻲ ﺗﻮاﻧﺪ آﻧﺮا اﻧﺠﺎم دﻫﺪ
ﺑﻌﻨﻮان ﻣﺜﺎل درﺧﻮاﺳﺖ ﺑﺮاي ﺧﻮاﻧﺪن از آدرس ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﻋﻤﻼً وﺟﻮد ﻧﺪارﻧﺪ در اﻳﻦ ﺣﺎﻟﺖ وﺳﻴﻠﻪ
ﭘﺎﺳﺦ Exceptionﺑﺮ ﻣﻴﮕﺮداﻧﺪ .ﭘﺎﺳﺦ Exceptionﺑﻪ اﻳﻦ ﻧﺤﻮ اﺳﺖ ﻛﻪ در PDUدرﻳﺎﻓﺖ ﺷﺪه ﻛﺪ
ﻓﺎﻧﻜﺸﻦ ﺑﻪ ﻫﻤﺎن ﺷﻜﻞ ﺑﺮ ﻧﻤﻲ ﮔﺮدد ﺑﻠﻜﻪ وﺳﻴﻠﻪ ﺑﻴﺖ MSBآﻧﺮا ﻛﻪ ﺻﻔﺮ اﺳﺖ ﺑﻪ ﻳﻚ ﺗﺒﺪﻳﻞ ﻣﻴﻜﻨﺪ
ﺑﻌﺒﺎرت دﻳﮕﺮ آﻧﺮا ﺑﺎ 80ﻫﮕﺰ ﺟﻤﻊ ﻣﻲ ﻛﻨﺪ و ﺳﭙﺲ آﻧﺮا ﺑﻪ Masterﺑﺮ ﻣﻴﮕﺮداﻧﺪ Master .ﺑﺎ درﻳﺎﻓﺖ اﻳﻦ
ﻛﺪ ﻣﺘﻮﺟﻪ اﺷﻜﺎل ﻣﻴﺸﻮد .اﻣﺎ اﻳﻨﻜﻪ ﭼﻪ ﻧﻮع ﺧﻄﺎﻳﻲ رخ داده از روي ﻓﻴﻠﺪ Dataﻣﺘﻮﺟﻪ ﻣﻴﺸﻮد زﻳﺮا وﺳﻴﻠﻪ
ﻛﺪ ﺧﻄﺎي Exceptionرا ﻧﻴﺰ در اﻳﻦ ﻓﻴﻠﺪ ﻗﺮار ﻣﻴﺪﻫﺪ .اﻳﻦ ﻛﺪ ﻫﺎ ﻃﺒﻖ ﺷﻜﻞ زﻳﺮ ﻫﺴﺘﻨﺪ:
در ﻣﺜﺎل زﻳﺮ درﺧﻮاﺳﺖ ﺧﻮاﻧﺪن وﺿﻌﻴﺖ ﺧﺮوﺟﻲ ﻫﺎي 514ﺗﺎ 521ﺗﻮﺳﻂ Masterارﺳﺎل ﻣﻴﮕﺮدد وﻟﻲ ﭼﻮن
اﻳﻦ آدرﺳﻬﺎ ﺗﻮﺳﻂ وﺳﻴﻠﻪ ﺳﺎﭘﻮرت ﻧﻤﻴﺸﻮﻧﺪ درﭘﺎﺳﺦ ﻛﺪ Exception 02ﻛﻪ ﻧﺸﺎن دﻫﻨﺪه ﻧﺎﺷﻨﺎﺧﺘﻪ ﺑﻮدن آدرس
اﺳﺖ را ﺑﺮﻣﻴﮕﺮداﻧﺪ.
45 ﺷﺒﻜﻪ MODBUS
ﻣﻴﺘﻮان ﺑﺎ اﺳﺘﻔﺎده از Bridgeﻣﺨﺼﻮص اﻳﻦ ﺷﺒﻜﻪ ﻛﻪ ﺑﻪ ) BP (Bridge Plusﻣﻮﺳﻮم اﺳﺖ ﭼﻨﺪﻳﻦ ﺷﺒﻜﻪ را ﺑﺎﻫﻢ
ﻟﻴﻨﻚ ﻛﺮد ﺑﻌﻼوه ﻣﻴﺘﻮان ﺑﺎ اﺳﺘﻔﺎده از Multiplexerﻫﺎي ﻣﺨﺼﻮص ﻛﻪ ﺑﻪ MPﻣﻮﺳﻮم اﺳﺖ و داراي ﻟﻴﻨﻚ
ﺳﺮﻳﺎل RS232/RS485ﻣﻲ ﺑﺎﺷﺪ اﺗﺼﺎل ﺑﺎ وﺳﺎﻳﻞ ﻣﺠﻬﺰ ﺑﻪ ﭘﻮرت ﺳﺮﻳﺎل را ﺑﺮﻗﺮار ﻛﺮد.
ﺷﺒﻜﻪ MODBUS 46
PLCﻫﺎي Modiconداراي ﭘﻮرت اﺗﺼﺎل ﻣﺴﺘﻘﻴﻢ ﺑﻪ Modbus Plusﻫﺴﺘﻨﺪ و از ﻃﺮﻳﻖ اﻳﻦ ﭘﻮرت ﻣﻴﺘﻮان
Distributed I/Oﻫﺎﻳﻲ ﻛﻪ ﺷﺒﻜﻪ ﺷﺪه اﻧﺪ را ﺑﻪ PLCﻣﺘﺼﻞ ﻧﻤﻮد.در ﻋﻴﻦ ﺣﺎل ﺑﺎ ﻗﺮار دادن ﻛﺎرت ﺷﺒﻜﻪ ﻛﻪ ﺑﻪ
NOMﻣﺨﻔﻒ Network Option Moduleاﺳﺖ اﺗﺼﺎل ﺑﻴﻦ PLCو ﺷﺒﻜﻪ ﻣﺰﺑﻮر را ﺑﺮﻗﺮار ﻧﻤﻮد.
در ﺷﻜﻞ ﺻﻔﺤﻪ ﺑﻌﺪ ﻧﻤﻮﻧﻪ اي از ﺳﺎﺧﺘﺎر ﺷﺒﻜﻪ Modbus Plusﻧﺸﺎن داده ﺷﺪه اﺳﺖ .ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻴﺸﻮد
ﺷﺒﻜﻪ Aﺗﻮﺳﻂ رﻳﭙﻴﺘﺮ ﺗﻮﺳﻌﻪ ﭘﻴﺪا ﻛﺮده و ارﺗﺒﺎط ﺑﻴﻦ ﺷﺒﻜﻪ Aو ﺷﺒﻜﻪ Bاز ﻃﺮﻳﻖ Bridgeاﻧﺠﺎم ﺷﺪه اﺳﺖ.
اﺟﺎزه دﺳﺘﺮﺳﻲ ﺑﻪ ﺑﺎس دارد ﻛﻪ ﻓﺮﻳﻢ Tokenدر اﺧﺘﻴﺎرش ﺑﺎﺷﺪ Token .ﮔﺮوﻫﻲ از ﺑﻴﺖ ﻫﺎي ﻣﻨﻄﻘﻲ اﺳﺖ ﻛﻪ
ﺑﻴﻦ Nodeﻫﺎ ﺑﻪ ﺗﺮﺗﻴﺐ آدرس آﻧﻬﺎ ﻣﻲ ﭼﺮﺧﺪ .ﻫﺮ ﺷﺒﻜﻪ داراي Tokenﻣﺨﺼﻮص ﺑﻪ ﺧﻮد ﻣﻲ ﺑﺎﺷﺪ از اﻳﻨﺮو
وﻗﺘﻲ ﭼﻨﺪﻳﻦ ﺷﺒﻜﻪ Modbus Plusﺗﻮﺳﻂ Bridgeﺑﻪ ﻳﻜﺪﻳﮕﺮ ﻣﺘﺼﻞ ﻣﻴﺸﻮﻧﺪ Tokenدر ﻫﺮ ﻗﺴﻤﺖ ﺟﺪاﮔﺎﻧﻪ
ﻣﻲ ﭼﺮﺧﺪ و Bridgeاﺟﺎزه ﻋﺒﻮر آن را ﻧﺨﻮاﻫﺪ داد .ﺷﻜﻞ ﺑﻌﺪ دو ﺷﺒﻜﻪ را ﻛﻪ ﺑﺎ Bridgeﺑﻪ ﻫﻢ ﻣﺘﺼﻞ ﺷﺪه اﻧﺪ
ﻧﺸﺎن ﻣﻴﺪﻫﺪ Token .ﻫﺮ ﺷﺒﻜﻪ ﺑﺼﻮرت ﻣﺠﺰا ﺑﻪ ﺗﺮﺗﻴﺐ ﺷﻤﺎره Nodeﻫﺎ و ﺑﺼﻮرت ﺻﻌﻮدي ﮔﺮدش ﻣﻴﻜﻨﺪ و
ﭘﺲ از رﺳﻴﺪن ﺑﻪ ﺑﺎﻻﺗﺮﻳﻦ آدرس ﻣﺠﺪداً ﺑﻪ آدرس ﭘﺎﻳﻴﻦ ﺗﺮ ﺑﺮ ﻣﻴﮕﺮدد.
وﻗﺘﻲ ﻳﻚ Nodeﺑﺨﻮاﻫﺪ ﺑﻪ ﺗﺒﺎدل دﻳﺘﺎ ﺑﺎ ﺳﺎﻳﺮ Nodeﻫﺎ ﺑﭙﺮدازد اﺑﺘﺪا Tokenرا در اﺧﺘﻴﺎر ﮔﺮﻓﺘﻪ و آﻧﺮا ﺑﻤﺪت
ﺣﺪاﻗﻞ 530ﻣﻴﻜﺮوﺛﺎﻧﻴﻪ ﻧﮕﻪ ﻣﻴﺪارد ﻳﺎ اﺻﻄﻼﺣﺎً Holdﻣﻴﻜﻨﺪ ﺳﭙﺲ ﻗﺎدر اﺳﺖ ﭘﻴﺎم ﺧﻮد را ارﺳﺎل ﻧﻤﺎﻳﺪ .در ﻫﺮ
)(route ﭘﻴﺎم آدرس ﮔﻴﺮﻧﺪه و ﻓﺮﺳﺘﻨﺪه ﻣﺸﺨﺺ اﺳﺖ .در ﺷﺒﻜﻪ ﻫﺎﻳﻲ ﻛﻪ ﺑﺎ Bridgeﺑﻪ ﻫﻢ ﻣﺘﺼﻞ ﺷﺪه اﻧﺪ ﻣﺴﻴﺮ
ﻧﻴﺰ در ﭘﻴﺎم ﻣﺸﺨﺺ ﻣﻴﮕﺮدد .ﺑﺎ ﻋﺒﻮر Tokenﻫﺮ Nodeﻣﻴﺘﻮاﻧﺪ در ﻳﻚ دﻳﺘﺎﺑﻴﺲ ﺳﺮاﺳﺮي ) (globalﻛﻪ ﺑﺼﻮرت
Broadcastﺑﺮاي ﺗﻤﺎم Nodeﻫﺎ ﻣﺤﺴﻮب ﻣﻴﺸﻮد ﭘﻴﺎﻣﻲ را ﺑﻨﻮﻳﺴﺪ.
دﻳﺘﺎي Globalﺑﻌﻨﻮان ﻓﻴﻠﺪي در ﻓﺮﻳﻢ Tokenﻗﺮار ﻣﻴﮕﻴﺮد و ﻫﻤﺮاه ﺑﺎ آن در ﺷﺒﻜﻪ آزاد ﻣﻲ ﺷﻮد .ﺳﺎﻳﺮ Nodeﻫﺎ
ﺑﺎ ﻣﺎﻧﻴﺘﻮر ﻛﺮدن Tokenﻓﻴﻠﺪ Global Dataرا از آن ﺟﺪا ﻛﺮده و ﭘﻴﺎم را ﻣﻴﺨﻮاﻧﻨﺪ .اﻳﻦ روش اﻣﻜﺎن اﻧﺘﻘﺎل ﺳﺮﻳﻊ
آﻻرم ﻫﺎ و Set Pointﻫﺎ و ﺳﺎﻳﺮ دﻳﺘﺎ ﻫﺎي ﻣﻬﻢ را ﻓﺮاﻫﻢ ﻣﻲ ﺳﺎزد .ﺑﺪﻳﻬﻲ اﺳﺖ ﻫﺮ ﺷﺒﻜﻪ ﺑﺮاي ﺧﻮدش داراي
ﻳﻚ Global Dataاﺳﺖ ﻛﻪ ﻧﻤﻴﺘﻮاﻧﺪ از Bridgeﻋﺒﻮر ﻛﺮده و ﺑﻪ ﺳﺎﻳﺮ ﺷﺒﻜﻪ ﻫﺎ ﻣﻨﺘﻘﻞ ﺷﻮد.
ﻫﺮ Bridgeﻧﻴﺰ داراي آدرس Nodeروي ﺷﺒﻜﻪ اﺳﺖ وﻟﻲ از آﻧﺠﺎ ﻛﻪ واﺳﻂ ﺑﻴﻦ دو ﺷﺒﻜﻪ ﻣﻴﺒﺎﺷﺪ ﻣﻴﺘﻮاﻧﺪ روي
ﻫﺮ ﺷﺒﻜﻪ ﻳﻚ آدرس Nodeداﺷﺘﻪ ﺑﺎﺷﺪ .در ﺷﻜﻞ ﺑﻌﺪ ﻣﻼﺣﻈﻪ ﻣﻴﺸﻮد ﻛﻪ Bridgeﺑﻴﻦ ﺷﺒﻜﻪ Aو Bاز دﻳﺪ
ﺷﺒﻜﻪ Aﺑﺎ آدرس 22و از دﻳﺪ ﺷﺒﻜﻪ Bﺑﺎ آدرس 25ﺷﻨﺎﺧﺘﻪ ﻣﻴﺸﻮد وﻟﻲ Bridgeﺑﻴﻦ ﺷﺒﻜﻪ Bو Cاز دﻳﺪ
ﺷﺒﻜﻪ MODBUS 48
ﻫﺮ دو ﺷﺒﻜﻪ ﺑﺎ آدرس 20ﻣﺸﺨﺺ ﻣﻴﺸﻮد .اﮔﺮ ﭘﻴﺎﻣﻲ از Nodeﻳﻚ ﺷﺒﻜﻪ ﺑﻪ Nodeﺷﺒﻜﻪ دﻳﮕﺮي ﻛﻪ ﺑﺎ
Bridgeﺑﻪ ﻫﻢ ﻣﺘﺼﻞ ﺷﺪه اﻧﺪ ارﺳﺎل ﺷﻮد اﺑﺘﺪا Bridgeآﻧﺮا درﻳﺎﻓﺖ ﻛﺮده و ذﺧﻴﺮه ﻣﻲ ﻛﻨﺪ ﺳﭙﺲ ﺑﻪ ﻣﺤﺾ
اﻳﻨﻜﻪ Tokenﺷﺒﻜﻪ دوم را ﮔﺮﻓﺖ ﭘﻴﺎم ﻣﺰﺑﻮر را ﻫﻤﺮاه ﺑﺎ آن ﺑﻪ Nodeﻣﻮرد ﻧﻈﺮ ارﺳﺎل ﻣﻲ ﻧﻤﺎﻳﺪ .ﻫﺮ ﻓﺮﻳﻢ ﭘﻴﺎم
ﺷﺎﻣﻞ اﻃﻼﻋﺎت ﻣﺴﻴﺮ ) (Routeاﺳﺖ ﻳﻌﻨﻲ آدرس Bridgeﻫﺎﻳﻲ ﻛﻪ ﻻزم اﺳﺖ ﭘﻴﺎم از آﻧﻬﺎ ﺑﮕﺬرد ﺗﺎ ﺑﻪ ﻣﻘﺼﺪ
ﺑﺮﺳﺪ در ﻓﻴﻠﺪﻫﺎي ﻣﺮﺑﻮﻃﻪ ﻣﺸﺨﺺ اﺳﺖ .ﺷﻜﻞ ﻛﻠﻲ اﻳﻦ ﻓﺮﻳﻢ در ﺻﻔﺤﻪ ﺑﻌﺪ آﻣﺪه اﺳﺖ .ﻣﺎﻛﺰﻳﻤﻢ 4آدرس
Routeﻣﻴﺘﻮان در ﻓﺮﻳﻢ ﭘﻴﺎم ﺑﻜﺎر ﺑﺮد .ﺑﻌﻨﻮان ﻣﺜﺎل ﻓﺮض ﻛﻨﻴﺪ ﻛﻪ در ﺷﻜﻞ ﺻﻔﺤﻪ ﺑﻌﺪ Nodeﺷﻤﺎره 5از ﺷﺒﻜﻪ
Aﺑﺨﻮاﻫﺪ ﭘﻴﺎﻣﻲ را ﺑﻪ Nodeﺷﻤﺎره 12ﻛﻪ در ﺷﺒﻜﻪ Bﻗﺮار دارد ﺑﻔﺮﺳﺘﺪ ﺑﺮاي اﻳﻨﻜﺎر:
-1اوﻟﻴﻦ آدرس Routeآدرس Bridgeﺑﻴﻦ Aو Bﻳﻌﻨﻲ 22ﻣﻴﺒﺎﺷﺪ.
-2دوﻣﻴﻦ آدرس Routeآدرس Bridgeﺑﻴﻦ Bو Cﻳﻌﻨﻲ 20ﻣﻴﺒﺎﺷﺪ .ﺗﻮﺟﻪ ﺷﻮد ﻛﻪ آدرس Bridgeﺑﻴﻦ
Aو Bاز دﻳﺪﮔﺎه ﺷﺒﻜﻪ Bآدرس 25اﺳﺖ و اﻳﻦ Bridgeوﻗﺘﻲ Tokenرا ﺑﺪﺳﺖ ﺑﻴﺎورد ﭘﻴﺎم را ﺑﻪ
Nodeﺷﻤﺎره 20روي ﺷﺒﻜﻪ Bﻳﻌﻨﻲ Bridgeدﻳﮕﺮ ارﺳﺎل ﻣﻴﺪارد.
-3ﺳﻮﻣﻴﻦ آدرس Routeﻣﺮﺑﻮط ﺑﻪ آدرس Nodeﻣﻘﺼﺪ اﺳﺖ .
-4ﺳﺎﻳﺮ ﻓﻴﻠﺪﻫﺎي آدرس Routeﺑﺎ ﺻﻔﺮ ﭘﺮ ﻣﻴﺸﻮﻧﺪ ﻳﻌﻨﻲ Forwardingﺑﻴﺸﺘﺮي ﻻزم ﻧﻴﺴﺖ.
49 ﺷﺒﻜﻪ MODBUS
وﻗﺘﻲ Bridgeاوﻟﻴﻪ ﻳﻌﻨﻲ 22ﭘﻴﺎم را ﻣﻴﮕﻴﺮد آﻧﺮا ﺑﺮرﺳﻲ ﻣﻴﻜﻨﺪ و از آﻧﺠﺎ ﻛﻪ آدرس Routeﻫﺎي ﺑﻌﺪي ﺻﻔﺮ
ﻧﻴﺴﺖ ﻣﺘﻮﺟﻪ ﻣﻲ ﺷﻮد ﻛﻪ ﺑﺎﻳﺪ آﻧﺮا ﺑﻪ ﺷﺒﻜﻪ ﺑﻌﺪي ﺑﻔﺮﺳﺘﺪ .اﻳﻦ Bridgeآدرس ﺧﻮدش را ﺑﺮ ﻣﻲ دارد و آدرس
Routeﻫﺎي ﻣﻮﺟﻮد در ﭘﻴﺎم را ﺑﻪ ﭼﭗ ﺷﻴﻔﺖ داده و ﺑﻴﺘﻬﺎي ﺳﻤﺖ راﺳﺖ را ﺑﺎ ﺻﻔﺮ ﭘﺮ ﻣﻴﻜﻨﺪ ﺑﺪﻳﻦ ﺗﺮﺗﻴﺐ آدرس
20در اوﻟﻴﻦ ﻓﻴﻠﺪ Routeﻗﺮار ﻣﻴﮕﻴﺮد .اﻳﻦ Bridgeﺑﺎ درﻳﺎﻓﺖ Tokenﻓﺮﻳﻢ ﻣﺰﺑﻮر را ﺑﻪ Nodeﺷﻤﺎره 20ارﺳﺎل
ﻣﻴﻨﻤﺎﻳﺪ.ﻋﻤﻠﻜﺮد Bridgeﺷﻤﺎره 20ﺑﺮاي Routingﻧﻴﺰ ﺑﻪ ﻫﻤﻴﻦ ﻣﻨﻮال اﺳﺖ.
HDLC
داراي ﻓﺮﻳﻤﻲ ﺑﺼﻮرت ﺷﻜﻞ زﻳﺮ اﺳﺖ HDLCﻛﻪ ﻣﺨﻔﻒ High Level Data Link Controlاﺳﺖ
ﻃﻮل
1 1 1 2 1
ﺑﺎﻳﺖ
Media Access Control Level : MAC Levelﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺷﻜﻞ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﻣﺸﺘﻤﻞ ﺑﺮ ﻓﻴﻠﺪﻫﺎي
زﻳﺮ اﺳﺖ:
: Destination Addressآدرس ﻣﻘﺼﺪ را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ ﻛﻪ ﺑﻴﻦ 1ﺗﺎ 64اﺳﺖ.
: Source Addressآدرس ﻣﺒﺪا را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ و ﺑﻴﻦ 1ﺗﺎ 64اﺳﺖ.
: MAC Functionﻛﺪي اﺳﺖ ﻛﻪ ﺗﻮﺳﻂ آن ﻣﻘﺼﺪ ﻣﻴﻔﻬﻤﺪ ﭼﻪ ﻛﺎري ﺑﺎﻳﺪ اﻧﺠﺎم دﻫﺪ.
: Byte Countﺗﻌﺪاد ﺑﺎﻳﺖ ﻣﻮﺟﻮد در ﺑﺴﺘﻪ را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ.
LLC Level
ﺣﺎوي ﭘﻴﺎﻣﻲ اﺳﺖ ﻛﻪ ﺑﺎﻳﺪ ارﺳﺎل ﺷﻮد ﻣﺎﻧﻨﺪ ﻳﻚ ﻓﺮﻣﺎن Modbusﺑﻌﻼوه اﻳﻦ ﻓﻴﻠﺪ Logical Link Control
ﻣﺴﻴﺮﻫﺎي آدرس Routeو ﺳﺎﻳﺮ اﻃﻼﻋﺎت ﻣﺮﺗﺒﻂ ﺑﺎ ﭘﻴﺎم را ﻧﻴﺰ در ﺑﺮ ﻣﻴﮕﻴﺮد .ﻓﻴﻠﺪﻫﺎي آن ﻋﺒﺎرﺗﻨﺪ از :
: Master Output Pathﻣﺴﻴﺮ ﺧﺮوﺟﻲ ﻛﻨﺘﺮﻟﺮ ﻳﻌﻨﻲ ﭘﻮرﺗﻲ ﻛﻪ ﺗﻮﺳﻂ آن ارﺗﺒﺎط ﺑﺮﻗﺮار ﻣﻴﻜﻨﺪ را ﻣﺸﺨﺺ
ﻣﻴﻜﻨﺪ
: Router Counterﺗﻌﺪاد Bridge Plusﻣﺴﻴﺮ را ﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ.
: Transaction Sequenceدادو ﺳﺘﺪ ﻳﺎ ﺗﺒﺎدل دﻳﺘﺎ ﺑﻴﻦ ﻣﺒﺪا و ﻣﻘﺼﺪ را ﻧﺸﺎن ﻣﻲ دﻫﺪ.
: Routing Pathﻣﺴﻴﺮ آدرس را در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از Bridgeﻣﺸﺨﺺ ﻣﻴﻜﻨﺪ.
Modbus : Modbus Frameﻓﺮﻣﺎن ﻫﺎي Modbus Plusرا درﺑﺮ دارد ﻛﻪ ﻋﻤﺪﺗﺎً ﺷﺒﻴﻪ ﻓﺮﻣﺎﻧﻬﺎي ﻧﺴﺨﻪ ﭘﺎﻳﻪ
اﺳﺖ.
اﺗﺼﺎل Nodeﻫﺎ ﺑﻪ ﻛﺎﺑﻞ اﺻﻠﻲ ﺷﺒﻜﻪ ﺗﻮﺳﻂ Tapﺻﻮرت ﻣﻴﮕﻴﺮد .وﺳﺎﻳﻞ Tapداراي ﺗﺮﻣﻴﻨﻴﺘﻮر داﺧﻠﻲ ﻫﺴﺘﻨﺪ و
ﺑﺎ اﺳﺘﻔﺎده از Jumperدر ﻣﺪار ﻗﺮار ﻣﻴﮕﻴﺮﻧﺪ ﻳﺎ از ﻣﺪار ﺧﺎرج ﻣﻴﺸﻮﻧﺪ .ﺑﺪﻳﻬﻲ اﺳﺖ ﺑﺠﺰ در اﺑﺘﺪا و اﻧﺘﻬﺎي ﺑﺎس اﻳﻦ
ﺗﺮﻣﻴﻨﻴﺘﻮر ﻫﺎ ﻧﺒﺎﻳﺪ در ﻣﺪار ﻗﺮار ﮔﻴﺮﻧﺪ.
ﻫﺮ Tapدراي ﻣﺤﻠﻲ ﺑﺮاي اﺗﺼﺎل ﺑﻪ زﻣﻴﻦ اﺳﺖ ﺣﺘﻲ اﮔﺮ وﺳﻴﻠﻪ اي ﺑﻪ Tapﻣﺘﺼﻞ ﻧﺒﺎﺷﺪ ﻻزم اﺳﺖ اﻳﻦ اﺗﺼﺎل
زﻣﻴﻦ از ﻃﺮﻳﻖ ﻛﺎﺑﻞ Dropﺑﺮﻗﺮار ﮔﺮدد .ﻛﺎﺑﻞ Dropﺗﻮﺳﻂ ﻛﺎﻧﻜﺘﻮر 9ﭘﻴﻦ D-subﺑﻪ وﺳﻴﻠﻪ ﻣﺘﺼﻞ ﻣﻴﮕﺮدد.
در ﺑﺮﺧﻲ ﻛﺎرﺑﺮدﻫﺎ ﺑﺮاي ﻗﺎﺑﻠﻴﺖ اﻃﻤﻴﻨﺎن ﺑﺎﻻﺗﺮ از ﻛﺎﺑﻞ دوﺑﻞ و اﺗﺼﺎل دوﺑﻞ ﺑﺮاي ﺷﺒﻜﻪ Modbus Plusاﺳﺘﻔﺎده
ﻣﻴﺸﻮد .در اﻳﻦ ﺷﺒﻜﻪ ﻛﺎﺑﻞ ﻫﺎ ﺑﺎ اﺳﺎﻣﻲ Aو Bﺷﻨﺎﺧﺘﻪ ﻣﻴﺸﻮﻧﺪ در اﻳﻨﺠﺎ ﻧﻴﺰ ﻃﻮل ﻛﺎﺑﻞ ﻫﻤﺎن ﻣﺤﺪودﻳﺘﻬﺎي ذﻛﺮ
ﺷﺪه را دارد ﺑﻪ اﺿﺎﻓﻪ اﻳﻨﻜﻪ اﺧﺘﻼف ﻃﻮل ﻛﺎﺑﻠﻬﺎ ﺑﻴﻦ ﻫﺮ دو Nodeﻣﺠﺎور ﻧﺒﺎﻳﺪ از 150ﻣﺘﺮ ﺑﻴﺸﺘﺮ ﺑﺎﺷﺪ .ﺷﻜﻞ زﻳﺮ
اﻳﻦ ﻣﺸﻜﻞ را ﺑﺮاي ﻛﺎﺑﻞ ارﺗﺒﺎﻃﻲ ﺑﻴﻦ Nodeﻫﺎي 1و 2ﻧﺸﺎن ﻣﻴﺪﻫﺪ.
53 ﺷﺒﻜﻪ MODBUS
ﺑﺎ اﺳﺘﻔﺎده از رﻳﭙﻴﺘﺮ ﻣﻲ ﺗﻮان ﺷﺒﻜﻪ را ﺑﺎ ﺗﻮﭘﻮﻟﻮژي ﻫﺎي دﻳﮕﺮي ﻏﻴﺮ از ﺑﺎس ﻣﺎﻧﻨﺪ Treeو Starﻧﻴﺰ آراﻳﺶ داد .
ﺷﻜﻞ ﺑﻌﺪ ﻧﻤﻮﻧﻪ اي از اﻳﻦ ﺗﻮﭘﻮﻟﻮژي ﻫﺎ را ﻧﺸﺎن ﻣﻲ دﻫﺪ .ﻣﺤﺪودﻳﺖ ﻫﺎي ذﻛﺮ ﺷﺪه ﻗﺒﻠﻲ ﺑﺮاي اﻳﻦ ﺳﺎﺧﺘﺎر ﻧﻴﺰ
وﺟﻮد دارد
ﺷﺒﻜﻪ MODBUS 54
در اﻳﻦ ﭘﻴﻜﺮ ﺑﻨﺪي ﻫﺮ Masterﻛﻪ ﺑﻪ ﭘﻮرت ﺳﺮﻳﺎل BMﻣﺘﺼﻞ ﺷﺪه ﺑﺎﺷﺪ اﻣﻜﺎن دﺳﺘﺮﺳﻲ ﺑﻪ ﺳﺎﻳﺮ Masterﻳﺎ
Slaveﻫﺎﻳﻲ ﻛﻪ ﺑﻪ ﭘﻮرت ﻫﺎي ﺳﺮﻳﺎل دﻳﮕﺮ ﻣﺘﺼﻞ ﻫﺴﺘﻨﺪ را داراﺳﺖ .ﺑﻌﻨﻮان ﻣﺜﺎل ﻫﺮ ﻛﺪام از Masterﻫﺎي
ﻣﺘﺼﻞ ﺑﻪ ﭘﻮرت 1ﻳﺎ 2وﺳﻴﻠﻪ BMدر ﺷﻜﻞ ﻓﻮق ﻣﻴﺘﻮاﻧﺪ ﺑﻪ ﻣﻮارد زﻳﺮ دﺳﺘﺮﺳﻲ داﺷﺘﻪ ﺑﺎﺷﺪ:
ﺑﻪ ﻫﺮ ﻛﻨﺘﺮﻟﺮ روي ﻛﻞ ﺷﺒﻜﻪ Modbus Plus
ﺑﻪ ﻫﺮ وﺳﻴﻠﻪ Slaveﻣﺘﺼﻞ ﺑﻪ ﺷﺒﻜﻪ ﻣﺎﻧﻨﺪ ﻫﺮ ﻛﺪام از Slave 247ﻣﺘﺼﻞ ﺷﺪه ﺑﻪ ﭘﻮرت 3
ﻫﻤﺎﻧﻄﻮر ﻛﻪ در ﺷﻜﻞ ﻣﺸﺨﺺ اﺳﺖ ﻫﺮ دو ﺷﺒﻜﻪ ﻣﺘﺼﻞ ﺑﻪ ﭘﻮرت ﻫﺎي 1و 3ﻣﻴﺘﻮاﻧﻨﺪ داراي آدرس Nodeﻫﺎي
ﻣﺸﺎﺑﻪ ﺑﺎﺷﺪ .ﺑﻌﻠﺖ ﻧﻘﺶ Bridgeاﻳﻦ آدرس ﻫﺎ ﻣﺠﺰا ﺗﻠﻘﻲ ﺷﺪه و ﻣﻲ ﺗﻮاﻧﻨﺪ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﺑﻪ ﺗﺒﺎدل دﻳﺘﺎ ﺑﭙﺮدازﻧﺪ.
ﺗﻮﺟﻪ :ﻧﻜﺎﺗﻲ ﻣﺮﺗﺒﻂ ﺑﺎ ﻧﺼﺐ Modbus Plusدر ﻓﺎﻳﻞ Modbus Plus Networkص 151ﺑﻪ ﺑﻌﺪ ﻫﺴﺖ
Type of Network
ASCII/RTU Device Bus
ModbusPlus Control Bus
Maximum Devices
ASCII/RTU One to one communications
ModbusPlus 32 (up to 64 with repeater)
Maximum Distance
ASCII/RTU 350m
ModbusPlus 1500m (6000m with repeaters)
(up to 3 repeaters may be used) (min. 1m between devices)
Communication Methods
ASCII/RTU Master-Slave Query-Response Cycle
(LRC error checking for ASCII)
(CRC error checking for RTU)
ModbusPlus Peer to Peer (Token passing logical ring)
Primary usage
ASCII/RTU Serial Communications for PLC,
Variable Speed Drives, Control Systems, etc.
ModbusPlus linking MODBUS and/or RS232/RS485
devices in a peer-to-peer network
ﺧﻮد را در ﺳﻄﻮح Supervisionو Controlاز ﻫﺮم اﺗﻮﻣﺎﺳﻴﻮن ﺑﺎز ﻛﺮد PLC .ﻫﺎ و ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎ و ﺑﺮﺧﻲ وﺳﺎﻳﻞ
I/Oﻧﻴﺰ ﺗﻮﺳﻂ اﻳﻦ ﺷﺒﻜﻪ ﺑﺎ ﻳﻜﺪﻳﮕﺮ ﻣﺮﺗﺒﻂ ﺷﺪﻧﺪ.
در ﻧﮕﺎه ﻛﻠﻲ Modbus TCP/IPﻫﻤﺎن ﭘﺮوﺗﻜﻞ Modbus RTUﻣﻴﺒﺎﺷﺪ ﻛﻪ ﺑﺎ اﻳﻨﺘﺮﻓﻴﺲ TCP/IPروي ﺷﺒﻜﻪ
Ethernetﻛﺎر ﻣﻴﻜﻨﺪ و در آن TCPﺑﺮاي اﻃﻤﻴﻨﺎن از ارﺳﺎل درﺳﺖ دﻳﺘﺎ و IPﺑﺮاي اﻃﻤﻴﻨﺎن از آدرس دﻫﻲ و
ﻣﺴﻴﺮ ﻳﺎﺑﻲ ﺻﺤﻴﺢ ﺑﻜﺎر ﻣﻴﺮود .ﺗﻔﺴﻴﺮ دﻳﺘﺎ و ﺷﻨﺎﺳﺎﻳﻲ اﺻﻞ ﭘﻴﺎم وﻇﻴﻔﻪ ﭘﺮوﺗﻜﻞ Modbusاﺳﺖ .در ﻋﻤﻞ
MBAP Modbus TCP/IPﻓﺮﻳﻢ اﺳﺘﺎﻧﺪارد ﭘﻴﺎم Modbusرا ﺑﻪ ﻓﺮﻳﻢ اﺳﺘﺎﻧﺪارد TCPﻛﻪ اﺻﻄﻼﺣﺎً ﺑﻪ آن ﻓﺮﻳﻢ
ﻣﺨﻔﻒ ModbBus Application Protocolﻣﻴﮕﻮﻳﻨﺪ ﻣﻄﺎﺑﻖ ﺷﻜﻞ زﻳﺮ ﺗﺒﺪﻳﻞ ﻣﻴﻜﻨﺪ :
ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻣﻲ ﺷﻮد ﻓﻴﻠﺪﻫﺎي Addressو Error Checkingاز ﻓﺮﻳﻢ ﭘﺎﻳﻪ Modbusﺣﺬف ﺷﺪه و ﺑﻘﻴﻪ
ﻓﻴﻠﺪﻫﺎ ﻳﻌﻨﻲ Function Codeو Dataدر ﻓﺮﻳﻢ TCPدر ﻛﻨﺎر ﻓﻴﻠﺪ ﻫﺎي ﺟﺪﻳﺪي ﻗﺮار ﻣﻴﮕﻴﺮﻧﺪ .ﻓﻴﻠﺪﻫﺎﻳﻲ ﻛﻪ در
MBAPوﺟﻮد دارﻧﺪ ﻋﺒﺎرﺗﻨﺪ از :
: Transaction Identifierاﻳﻦ ﻓﻴﻠﺪ ﺑﺮاي Transaction Pairingﺑﻜﺎر ﻣﻴﺮودﻳﻌﻨﻲ ارﺳﺎل ﭼﻨﺪ ﭘﻴﺎم روي ﻳﻚ
ارﺗﺒﺎط TCPﺗﻮﺳﻂ Clientﺑﺪون اﻳﻨﻜﻪ ﻣﻨﺘﻈﺮ ﭘﺎﺳﺦ ﭘﻴﺎﻣﻬﺎي اوﻟﻴﻪ از ﻃﺮف Serverﺑﺎﺷﺪ .در Modbusﺳﺮﻳﺎل
Modbus Clientﭘﺲ از ارﺳﺎل ﭘﻴﺎم ﺑﺎﻳﺪ ﻣﻨﺘﻈﺮ ﺗﺎﻳﻴﺪ Serverﻣﻴﻤﺎﻧﺪ ﺳﭙﺲ ﭘﻴﺎم ﺑﻌﺪي را ارﺳﺎل ﻣﻴﻜﺮد وﻟﻲ در
TCP/IPﭼﻨﺪﻳﻦ ﭘﻴﺎم ﻣﻴﺘﻮاﻧﺪ ﺗﻮﺳﻂ Clientﺷﻮد ﺑﺪون اﻳﻨﻜﻪ زﻣﺎﻧﻲ را ﺑﺮاي اﻧﺘﻈﺎر ﭘﺎﺳﺦ ﭘﻴﺎم ﻗﺒﻠﻲ ﺗﻠﻒ ﻛﻨﺪ.
ﺗﻌﺪاد اﻳﻨﮕﻮﻧﻪ ﭘﻴﺎم ﻫﺎ ﺑﺴﺘﮕﻲ ﺑﻪ ﻗﺎﺑﻠﻴﺖ و ﻇﺮﻓﻴﺖ Serverدارد .و ﻣﻴﺘﻮاﻧﺪ ﺑﻴﻦ 1ﺗﺎ 16ﺑﺎﺷﺪ.
: Protocol Identifierاﻳﻦ ﻓﻴﻠﺪ ﺑﺮاي Modbusﻣﻘﺪار 0را دارد ﺳﺎﻳﺮ ﻣﻘﺎدﻳﺮ ﺑﺮاي آﻳﻨﺪه رزرو ﺷﺪه اﻧﺪ.
Function Code : Lengthاﻳﻦ ﻓﻴﻠﺪ ﺗﻌﺪاد ﺑﺎﻳﺖ ﻫﺎي ﻣﻮﺟﻮد در ﻓﻴﻠﺪﻫﺎي ﺑﻌﺪ از ﺧﻮد ﻳﻌﻨﻲ ﺳﻪ ﻓﻴﻠﺪ Unit IDو
و Dataرا ﻧﺸﺎن ﻣﻲ دﻫﺪ.
: Unit Identifierاﻳﻦ ﻓﻴﻠﺪﺑﺮاي Routingاﺳﺖ و وﻗﺘﻲ اﺳﺘﻔﺎده ﻣﻴﺸﻮد ﻛﻪ ﭘﻴﺎﻣﻲ از روي Modbus TCPﻻزم
Modbus ﺑﺎﺷﺪ ﺑﻪ وﺳﻴﻠﻪ ﻛﻪ روي Modbusﺳﺮﻳﺎل ﻳﺎ Modbus Plusﻣﺘﺼﻞ و از ﻃﺮﻳﻖ Bridgeﻳﺎ Gatewayﺑﺎ
TCPارﺗﺒﺎط دارد ارﺳﺎل ﺷﻮد .در اﻳﻨﺤﺎﻟﺖ آدرس IPﻣﻮﺟﻮد در ﭘﻴﺎم ﻣﺮﺑﻮط ﺑﻪ Gatewayﻳﺎ Bridgeاﺳﺖ ﻛﻪ
ﻛﺎر اﻧﺘﻘﺎل ﭘﻴﺎم ﺑﻪ ﺳﻤﺖ دﻳﮕﺮ را اﻧﺠﺎم ﻣﻴﺪﻫﻨﺪ.
در ﺣﺎﻟﺘﻲ ﻛﻪ وﺳﻴﻠﻪ ﻣﻘﺼﺪ روي TCP/IPﻗﺮار دارد ﻣﻘﺪار اﻳﻦ ﻓﻴﻠﺪ FFﻫﮕﺰ اﺳﺖ.
59 MODBUS ﺷﺒﻜﻪ
ﺑﻪ آﻧﻬﺎ اﺷﺎره ﺷﺪ ﺑﺎModbus RTU ﻗﺮار ﻣﻴﮕﻴﺮﻧﺪ ﻫﻤﺎن ﻣﻮاردي ﻫﺴﺘﻨﺪ ﻛﻪ درADU ﻓﺎﻧﻜﺸﻦ ﻛﺪﻫﺎﻳﻲ ﻛﻪ در
ﻓﺮض ﻛﻨﻴﺪ ﺗﻮﺳﻂ. ﻧﻤﻮﻧﻪ اي ذﻛﺮ ﻣﻴﺸﻮدMBAP اﻳﻦ وﺟﻮد ﺑﻤﻨﻈﻮر آﺷﻨﺎﻳﻲ ﺧﻮاﻧﻨﺪه ﻣﺤﺘﺮم ﺑﺎ ﻣﻘﺎدﻳﺮ ﻓﻴﻠﺪ ﻫﺎي
ﺑﺨﻮاﻧﺪ درServer را از0-3 ﺑﺨﻮاﻫﺪ ﺧﺮوﺟﻲ ﻫﺎيClient ﻛﻪ ﺑﺮاي ﺧﻮاﻧﺪن ﺧﺮوﺟﻲ ﻫﺎﺳﺖ01 ﻓﺎﻧﻜﺸﻦ ﻛﺪ
: ﺑﺮاي درﺧﻮاﺳﺖ و ﻧﻴﺰ ﺑﺮاي ﭘﺎﺳﺦ در ﺟﺪاول زﻳﺮ اراﺋﻪ ﺷﺪه اﻧﺪADU اﻳﻨﺤﺎﻟﺖ ﻣﻘﺎدﻳﺮ ﺑﺴﺘﻪ
TCP/IP ﺑﻮد اﻳﻦ ﭘﻴﺎم ﺑﺮاي ارﺳﺎل ﺑﻪ ﺑﺎﻻﺗﺮﻳﻦ ﻻﻳﻪ در ﻣﺪلADU آﻧﭽﻪ ﺗﺎﻛﻨﻮن ﮔﻔﺘﻪ ﺷﺪ ﻣﺮﺑﻮط ﺑﻪ ﻓﺮﻳﻢ ﭘﻴﺎم ﻳﻌﻨﻲ
ﺷﻜﻞ ﺑﻌﺪ اﻳﻦ.ﺗﺤﻮﻳﻞ داده ﻣﻴﺸﻮد ﺳﭙﺲ ﻣﺮﺣﻠﻪ ﺑﻪ ﻣﺮﺣﻠﻪ از ﻻﻳﻪ ﻫﺎي ﭘﺎﻳﻴﻦ ﺗﺮ ﻣﻴﮕﺬرد ﺗﺎ ﺑﻪ ﻻﻳﻪ ﻓﻴﺰﻳﻜﻲ ﺑﺮﺳﺪ
:ﻣﻮﺿﻮع را ﺑﻬﺘﺮ ﻧﺸﺎن ﻣﻴﺪﻫﺪ
ﺷﺒﻜﻪ MODBUS 60
ﺑﺪﻟﻴﻞ ﻛﺎرﺑﺮد ﻓﺮاوان TCP/IPزﻳﺎد اﺳﺖ . ﺗﻄﺎﺑﻖ و ﺳﺎزﮔﺎري آن ﺑﺎ وﺳﺎﻳﻞ و ﺳﺨﺖ اﻓﺰار ﻫﺎ
ﺗﻌﺪاد وﺳﺎﻳﻞ ﻣﺘﺼﻞ ﺑﻪ ﺷﺒﻜﻪ ﺑﺴﻴﺎر زﻳﺎد اﺳﺖ و ﻣﻴﺘﻮاﻧﺪ ﺗﺎ ﺣﺪود 10,000وﺳﻴﻠﻪ را ﭘﻮﺷﺶ دﻫﺪ.
ﭘﻴﻜﺮ ﺑﻨﺪي آن ﺳﺎده اﺳﺖ اﺿﺎﻓﻪ ﻛﺮدن وﺳﻴﻠﻪ ﺟﺪﻳﺪ ﺑﻪ اﻳﻦ ﺷﺒﻜﻪ ﭘﻴﭽﻴﺪﮔﻲ ﺧﺎﺻﻲ ﻧﺪارد.