Professional Documents
Culture Documents
LabVIEW
اعداد المهندس :عصام الجنبي
قناة دليل طلبة الدراسات العليا قسم الهندسة الكهربائية /العراق ع التليغرام م/احمد العزاوي
برنامج الالب فيو LabVIEWهو برنامج من البرامج الهندسية وتحديداً
البرمجية ،و LabVIEWهي اختصاراً لـ ( Laboratory Virtual
)Instrumentation Engineering Workbenchوهي
واجهة برمجة هندسية من انتاج شركة ناشيونال إنسترومنتس NI
وهي نفس الشركة المنتجة لبرنامج Multisimوبرامج كثيرة أخرى.
برنامج البرمجة الرسومية الذي اضحى يوفر عليك الوقت و الجهد في
البرمجة و كذلك في تطوير المنتجات
من انتاج و تطوير شركةNational Instruments
له الكثير من االدوات و الموديوالت المساعدة
و دعما للمحتوى العربي … .اقدم لكم كتاب في تعليم الالب فيو
برنامج الب فيو LabVIEWهو عبارة عن لغة برمجة رسومية
Graphical Language؛ بمعنى انه يقوم بعملية البرمجة ولكن
بإستخدام الرسومات وتتم هذه العملية من خالل دوال ورموز لها وظيفة
معينة وهذا النوع من البرمجة وفر على الكثير على المهندسين الوقت
ﻣﻘﺪﻣﺔ ﻓﻰ LabVIEW
اﻟﻬﺪف :
اﻟﺘﻌﺮف ﻋﻠﻰ ﺑﻴﺌﺔ .LabVIEW
اﻟﻤﺤﺘﻮﻳﺎت :
(١ﻣﺎ هﻰ Instruments Virtualوﻣﺎ هﻰ ﻋﻨﺎﺻﺮهﺎ.
(٨اﻟﻤﺼﺪر .
وهﻰ The Front Panelو The Block Diagramو The Icon and
.Connectors Pane
:Indicators
هﻰ وﺣﺪات اﻻﺧﺮاج او اﻻﻇﻬﺎر ﻓﻰ VIﻣﺜﻞ graphsو ledsو ﻏﻴﺮهﺎ.
ﻣﺴﺎر اﻟﺒﻴﺎﻧﺎت.
ﺗﻜﻤﻦ ﻗﻮة LabVIEWﻓﻰ اﻟﻬﻴﻜﻞ اﻟﺒﻨﺎﺋﻰ ﻟﺒﺮاﻣﺠﻪ .ﺣﻴﺚ ان آﻞ VIﻳﻤﻜﻦ ان ﺗﻜﻮن SubVI
ﻓﻰ VIاﺧﺮى.
. .اذا آﺎن هﻨﺎك ﺧﻄﺄ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻈﻬﺮ هﻜﺬا ﻟﺘﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ .وﺗﻜﻮن هﻜﺬا
ﻟﻠﺘﻨﻔﻴﺬ اﻟﻤﺴﺘﻤﺮ ﻟﻠﺒﺮﻧﺎﻣﺞ ﺣﺘﻰ ﺗﻮﻗﻒ اﻟﺒﺮﻧﺎﻣﺞ او اﻟﻀﻐﻂ ﻋﻠﻴﻪ ﻣﺮة اﺧﺮى و ﻳﻈﻬﺮ اﺛﻨﺎء اﻟﺘﻨﻔﻴﺬ
اﻟﻤﺴﺘﻤﺮ ﻟﻠﺒﺮﻧﺎﻣﺞ هﻜﺬا .
ﻟﻮﻗﻒ اﻟﺒﺮﻧﺎﻣﺞ ﻧﻬﺎﺋﻴﺎ وﻓﻰ اﻟﺤﺎل وهﻰ ﻣﺘﺎﺣﺔ ﻓﻘﻂ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
ﻟﻮﻗﻒ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺆﻗﺘﺎ و ﻳﺴﻜﻤﻞ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻪ ﻣﺮة اﺧﺮى.
ﻣﻠﺤﻮﻇﺔ :ﻓﻰ ﺣﺎﻟﺔ اﻟﻮﻗﻒ اﻟﻤﺆﻗﺖ ﻳﻈﻬﺮ LabVIEWﻣﻜﺎن ﺗﻮﻗﻒ اﻟﺮﻧﺎﻣﺞ ﻓﻰ Block
.Diagram
ﻗﺎﺋﻤﺔ ﻣﻨﺴﺪﻟﻪ ﻟﺘﺮﺗﻴﺐ اﻟﻮﺣﺪات اﻟﺘﻰ ﻓﻮق ﺑﻌﻀﻬﺎ ﻓﻬﻰ ﺗﺤﺪد ﻣﻦ ﻳﻈﻬﺮ ﻓﻰ اﻻﻣﺎم وﻣﻦ ﻳﻜﻮن
ﻓﻰ اﻟﺨﻠﻒ.
: Highlightﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ ﻳﺘﻢ اﺳﺘﻌﺮض آﻴﻒ ﻳﺘﻢ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ وآﻴﻔﻴﺔ اﻧﺘﻘﺎل اﻟﺒﻴﺎﻧﺎت و
. ﺗﻈﻬﺮ ﺑﻬﺬا اﻟﺸﻜﻞ
: Step Intoﻟﺘﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺧﻄﻮة واﺣﺪة .وﺑﻬﺎ ﺗﺴﺘﻄﻴﻊ ان ﺗﺪﺧﻞ ﻓﻰ subVIاو اﻟﻬﻴﺎآﻞ
اﻟﺘﻜﺮارﻳﺔ ) (loopsﻟﺘﻨﻔﻴﺬهﺎ ﺧﻄﻮة ﺧﻄﻮة.
Tools Palette
ﻟﻮﺣﺔ اﻻدوات
ﻳﺘﻢ ﻓﺘﺤﻬﺎ ﻣﻦ:
Show Tools Palette<< Window
Palette Tools
وهﻰ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ اﻻدوات اﻻﺳﺎﺳﻴﺔ ﻓﻰ ﺑﻴﺌﺔ LabVIEWﻟﺘﺼﻤﻴﻢ و اﺧﺘﺒﺎرو ﺗﻨﻔﻴﺬ . VI
: Operating Toolﻟﺘﻐﻴﻴﺮ ﻗﻴﻢ Controlsاو ﻧﺺ ﻣﻜﺘﻮب .وﻋﺎدة ﻣﺎ ﺗﺴﺘﺨﺪم اﺛﻨﺎء ﺗﻨﻔﻴﺬ
اﻟﺒﺮﻧﺎﻣﺞ.
: Probe Toolﺗﺴﺘﺨﺪم ﻟﻌﻤﻞ ﻧﻘﻄﺔ ﻋﺮض ﺑﻴﺎﻧﺎت ) (Probeﻟﻌﺮض اﻟﻘﻴﻢ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺮﻧﺎﻣﺞ
ﻻﺧﺘﺒﺎرﻩ او ﻣﻌﺎﻟﺠﺔ اﺧﻄﺄﻩ.
: Color Copy Toolﻻﺧﺬ ﻗﻴﻢ اﻟﻠﻮن ﻣﻦ اى ﻣﻮﺿﻊ ﻓﻰ اﻟﻨﺎﻓﺬة ﻟﻴﺘﻢ اﺳﺘﺨﺪاﻣﻪ ﺑﻮاﺳﻄﺔ
.Coloring Tool
Controls palette
ﻟﻮﺣﺔ ادوات اﻟﺘﺤﻜﻢ
ﻳﺘﻢ ﻓﺘﺤﻬﺎ ﻣﻦ ﻧﺎﻓﺬة : Front Panel
Controls palette Show <<Window
!
!Error
CONTROLS ALL
ﻳﻤﻜﻦ اﻳﻀﺎ ان ﺗﻔﺘﺢ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻔﺄرة ﻋﻠﻰ ﻧﺎﻓﺬة Front
. Panel
ﺛﻢ ﺑﺎﻟﻤﺆﺷﺮ ﻋﻠﻰ Controls All
!Error
Functions Palette
ﻟﻮﺣﺔ اﻟﺪوال
ﻳﺘﻢ ﻓﺘﺤﻬﺎ ﻣﻦ ﻧﺎﻓﺬة : Block Diagram
Functions palette Show <<Window
!Error
Palette Functions
ﻟﻮﺣﺔ اﻟﺪوال
ﻳﻤﻜﻦ اﻳﻀﺎ ان ﺗﻔﺘﺢ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻔﺄرة ﻋﻠﻰ ﻣﻮﺿﻊ ﻓﻰ ﻧﺎﻓﺬة
.Block Diagram
ﺛﻢ ﺑﺎﻟﻤﺆﺷﺮ ﻋﻠﻰ Functions All
!Error
:Manualﻳﻘﻮم اﻟﻤﺒﺮﻣﺞ ﺑﺄﺧﺘﻴﺎر اﻻداة اﻟﺘﻰ ﻳﺮﻳﺪهﺎ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻻداة ﻓﻰ .Tools Palette
Numeric Control •
ﻳﺴﺘﻄﻴﻊ ﻣﺴﺘﺨﺪم اﻟﺒﺮﻧﺎﻣﺞ ﺗﻐﻴﺮهﺎ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻻدﺧﺎلNumeric Control وﻗﻴﻤﺔ
.اﻟﻘﻴﻢ ﻟﻠﺒﺮﻧﺎﻣﺞ
Indicator Numeric •
وﻳﺤﺘﻮى Numeric Indicatorﻋﻠﻰ ﻋﺪة ﺧﺼﺎﺋﺺ ﻣﺜﻞ اﻟﻌﻨﻮان ) ( Labelو اﻟﻘﻴﻤﺔ .
وﻗﻴﻤﺔ Numeric Indicatorﻻ ﻳﺴﺘﻄﻴﻊ ان ﻳﻐﻴﺮهﺎ اﻟﻤﺴﺘﺨﺪم اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ اﻧﻤﺎ ﺗﺘﻐﻴﺮ
ﻣﻦ ﺧﻼل .Block Diagram
ﺛﻢ آﺘﺎﺑﺔ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة .ﺛﻢ ﺿﻐﻂ ﻣﻔﺘﺎح > <ENTERاو Operating Tool
اﻟﻤﻮﺟﻮد ﻓﻰ اﻻﻋﻠﻰ ToolBarاو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اى ﻣﻜﺎن اﻟﻀﻐﻂ ﻋﻠﻰ اﻻﻳﻘﻮﻧﺔ
ﺧﺎرج .Control
ﺗﺴﺘﺨﺪم ﻻدﺧﺎل و اﻇﻬﺎر اﻟﻘﻴﻢ اﻟﺜﻨﺎﺋﻴﺔ Trueاو Falseو هﻰ ﺗﻤﺎﺛﻞ اﻟﻤﻔﺎﺗﻴﺢ )( Switches
واﻟﻤﻔﺎﺗﻴﺢ اﻟﻀﺎﻏﻄﺔ ) (Push Buttonsو .LEDs
ﻣﻠﺤﻮﻇﺔ :
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﺧﺼﺎﺋﺺ Indicatorsو Controlsﺑﺎﻟﻀﻐﻂ اﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻮﺣﺪة
ﺳﻮاء آﺎﻧﺖ Indicatorاو Controlﻓﺘﻈﻬﺮ ﻟﻨﺎ ﻗﺎﺋﻤﺔ ﻣﻨﺴﺪﻟﻪ ﻓﻴﻬﺎ ﻣﺎ ﻳﻤﻜﻦ ﺗﻐﻴﺮﻩ .
!
اﻟﺪوال :
: SubVI
وهﻰ VIﻣﺒﻨﻴﺔ ﻣﺴﺒﻘﺎ ﺗﺴﺘﺨﺪم ﻓﻰ Block Diagramاﻟﺨﺎص ﺑـ VIاﺧﺮى وهﻰ ﺗﻤﺎﺛﻞ
Subroutineﻓﻰ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻻﺧﺮى.
ﻣﺜﻞ
:Terminals
و Data Typeﻳﺤﺪد ﻧﻮع اﻟﺒﻴﺎﻧﺎت و اﻳﻀﺎ آﻞ ﻣﻦ اﻟﺴﻌﺔ اﻟﺘﺨﺰﻳﻨﻴﺔ ﻟﻠﻘﻴﻤﺔ و ﺑﺎﻟﺘﺎﻟﻰ ﻣﺪى هﺬة
اﻟﻘﻴﻤﺔ.
ﻟﻜﻞ Nodeﻳﻮﺟﺪ ﻟﻬﺎ Connector Paneﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ وﺻﻼت ﺗﺒﻴﻦ و ﺗﺤﺪد ﻃﺮﻳﻘﺔ
وﺻﻠﻬﺎ أى اﻣﺎآﻦ اﻻدﺧﺎل و اﻻﺧﺮج اﻟﺨﺎص ﺑـ .Node
ﻳﺘﺼﻞ) Wireراﺑﻂ ( ﺑﻤﺼﺪر وﺣﻴﺪ ﻟﻠﺒﻴﺎﻧﺎت و ﻟﻜﻦ ﻳﻤﻜﻦ ان ﻳﺼﻞ هﺬة اﻟﺒﻴﺎﻧﺎت ﻟﻜﺜﺮ ﻣﻦ ﻣﺪﺧﻞ
ﻟﺪوال او .SubVI
ﻟﻜﻞ راﺑﻂ ﻟﻮن و ﺷﻜﻞ و ﺳﻤﻚ ﻳﻌﺘﻤﺪ ﻋﻠﻰ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ) ( Data Typeاﻟﺨﺎﺻﺔ ﺑﺎﻟﺮاﺑﻂ.
ﺑﺮﺗﻘﺎﻟﻰ( رﻗﻢ
ﻋﺸﺮى )
(floating
رﻗﻤﻰ
)point
)(Numeric
ازرق )رﻗﻢ
ﺻﺤﻴﺢ )
Integer
ﺛﻨﺎﺋﻰ
اﺧﻀﺮ
)(Boolean
ﻧﺺ)(String وردى
ﺗﻨﻔﺬ Nodeﻓﻮرا ﻋﻨﺪﻣﺎ ﺗﻜﻮن اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰة ﻋﻠﻰ ﻣﺪاﺧﻠﻬﺎ .و ﻋﻨﺪ اﻧﺘﻬﺎء ﺗﻨﻔﻴﺬ Nodeﺗﺨﺮج
اﻟﻨﻮاﺗﺞ ﻓﻮرا ﻋﻠﻰ ﻣﺨﺎرﺟﻬﺎ ﻟﺘﻜﻮن ﺟﺎهﺰة ﻟﻠـ Nodeاﻟﺘﺎﻟﻴﺔ ﻟﻬﺎ ﻓﻰ ﻣﺴﺎر ﺗﺪﻓﻖ اﻟﺒﻴﺎﻧﺎت.
وذﻟﻚ ﻋﻜﺲ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻻﺧﺮى اﻟﺘﻰ ﺗﻌﺘﻤﺪ ﻋﻠﻰ Control Flowﺣﻴﺚ ﺗﻨﻔﺬ اﻟﺘﻌﻠﻴﻤﺎت ﺗﺒﺎﻋﺎ
ﺣﺴﺐ ﺗﺮﺗﻴﺐ آﺘﺎﺑﺘﻬﺎ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ.
ﻣﺜﺎل :ﺑﺮﻧﺎﻣﺞ ﻳﻘﻮم ﺑﺠﻤﻊ رﻗﻤﻴﻦ ﺛﻢ ﻳﻘﻮم ﺑﻄﺮح ٥٠ﻣﻦ ﺣﺎﺻﻞ اﻟﺠﻤﻊ .
ﻧﻼﺣﻆ ان اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰ ﻋﻠﻰ ﻣﺪﺧﻠﻰ داﻟﺔ اﻟﺠﻤﻊ ) Xو (Yﻟﺬﻟﻚ ﺗﻨﻔﺬ داﻟﺔ اﻟﺠﻤﻊ ﺗﻠﻘﺎﺋﻴﺎ .وﺑﻌﺪ
اﻧﺘﻬﺎء ﺗﻨﻔﻴﺬ داﻟﺔ اﻟﺠﻤﻊ ﻳﺨﺮج اﻟﻨﺎﺗﺞ ﻋﻠﻰ ﻣﺨﺮج داﻟﺔ اﻟﺠﻤﻊ ﻟﺘﻜﻮن اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰة ﻋﻠﻰ ﻣﺪﺧﻠﻰ
داﻟﺔ اﻟﻄﺮح )ﺣﺎﺻﻞ اﻟﺠﻤﻊ و اﻟﺜﺎﺑﺖ (٥٠ﻟﺬﻟﻚ ﺗﻨﻔﺬ داﻟﺔ اﻟﻄﺮح و ﺑﻌﺪ ﺗﻨﻔﻴﺬهﺎ ﻳﺨﺮج اﻟﻨﺎﺗﺞ ﻣﻦ
ﻣﺨﺮج داﻟﺔ اﻟﻄﺮح اﻟﻰ اداة اﻻﻇﻬﺎر . Z
اى ان داﻟﺔ اﻟﻄﺮح ﻻ ﺗﻨﻔﺬ اﻻ ﻋﻨﺪﻣﺎ ﺗﻘﻮم داﻟﺔ اﻟﺠﻤﻊ ﺑﺠﻤﻊ اﻟﺮﻗﻤﻴﻦ وﺗﺨﺮج اﻟﻨﺎﺗﺞ اﻟﻰ داﻟﺔ
اﻟﻄﺮح.
ﻣﺜﺎل :٢آﻤﺎ ﺑﺎﻟﺸﻜﻞ ﻳﻮﺟﺪ ﺟﺰﺋﻴﻦ ﻣﺴﺘﻘﻠﻴﻦ اﺣﺪهﻤﺎ ﻳﺒﺪأ ﺑﺪاﻟﺔ اﻟﺠﻤﻊ واﻻﺧﺮ ﻳﺒﺪأ ﺑﺪاﻟﺔ اﻟﻘﺴﻤﺔ.
ﻧﻼﺣﻆ ان اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰة ﻋﻠﻰ ﻣﺪاﺧﻞ داﻟﺔ اﻟﺠﻤﻊ و اﻳﻀﺎ اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰة ﻋﻠﻰ داﻟﺔ اﻟﻘﺴﻤﺔ ﻓﺄى
ﻣﻨﻬﻤﺎ ﻳﻨﻔﺬ اوﻻ .ﺣﻘﻴﻘﺎ ﻻ ﻧﻌﻠﻢ ﻓﺎﻟﺠﺰﺋﻴﻦ ﻣﺴﺘﻘﻠﻴﻦ ﻋﻦ ﺑﻌﻀﻬﻤﺎ ﺗﻤﺎﻣﺎ .اذا ﻻﺑﺪ ﻣﻦ ﻃﺮﻳﻖ ﺗﺤﺪد ﻣﻦ
ﺳﻴﻨﻔﺬ اوﻻ ﺛﻢ اﻟﺬى ﻳﻠﻴﻪ .وهﺬا ﻣﺎ ﺳﻨﺘﻌﻠﻤﺔ ﻓﻰ اﻟﺪروس اﻟﻘﺎدﻣﺔ ان ﺷﺎء اﷲ.
ﻻﺣﻆ ان آﻠﻤﺔ Numericﻣﻈﻠﻠﺔ.هﺬا ﻳﻌﻨﻰ ان اى آﺘﺎﺑﺔ ﺳﻨﻘﻮم ﺑﻜﺘﺎﺑﺘﻬﺎ ﺳﺘﺤﻞ ﻣﺤﻞ آﻠﻤﺔ
.Numeric
اﻟﻤﻮﺟﻮد ﻓﻰ ToolBarاو ﻧﻀﻐﻂ اى ﻣﻜﺎن ﻧﻜﺘﺐ deg Cﺛﻢ اﺿﻐﻂ Enter Button
اﺧﺮ ﺧﺎرج Controlاو ﻧﻀﻐﻂ .Enter
ﻣﻠﺤﻮﻇﺔ
اذا ﻟﻢ ﺗﻜﺘﺐ deg Cﻣﺒﺎﺷﺮة ﺳﻴﺨﺘﻔﻰ اﻟﺘﻈﻠﻴﻞ ﻣﻦ ﻋﻠﻰ آﻠﻤﺔ .Numericﻓﺎذا اردت ﺑﻌﺪ ان ﺗﻌﻴﺪ
اﻟﺘﻈﻠﻴﻞ وﺗﻜﺘﺐ deg Cﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻧﻘﺮﺗﻴﻴﻦ ﻋﻠﻰ ) Labelآﻠﻤﺔ (Numericﺣﺘﻰ ﺗﻈﻠﻞ ﺛﻢ
اآﺘﺐ .deg C
اﻟﻤﻮﺟﻮد ﻓﻰ ToolBarاو اﺿﻐﻂ اى ﻣﻜﺎن ﻧﻜﺘﺐ deg Fﺛﻢ اﺿﻐﻂ Enter Button
اﺧﺮ ﺧﺎرج Indicatorاو ﻧﻀﻐﻂ .Enter
ﻣﻠﺤﻮﻇﺎت:
-١ﻻﺣﻆ اﻟﻔﺮق ﺑﻴﻦ اداة اﻟﺘﺤﻜﻢ Controlو اداة اﻻﻇﻬﺎر .Indicator
هﺬا اﻟﻌﻨﻮان ﻳﻤﻜﻦ ان ﻳﻈﻬﺮ او ﻳﺨﺘﻔﻰ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Controlاو
Indicatorﺛﻢ اﺧﺘﻴﺎر
Label<<Visible Items
ﻧﻼﺣﻆ اﻻﺗﻰ:
-٣اﻻﻃﺎر اﻟﺨﺎرﺟﻰ ﻟﻠـ Control Terminalاآﺜﺮ ﺳﻤﻜﺎ ﻣﻦ اﻻﻃﺎر اﻟﺨﺎرﺟﻰ ﻟﻠـ Indicator
. Terminal
ﺗﻌﻠﻴﻖ :
Data typeﺗﺤﺪد اﻟﺴﻌﺔ اﻟﺘﺨﺰﻳﻨﻴﺔ ﻟﻠﻤﺘﻐﻴﺮ وﻣﺪى اﻻرﻗﺎم اﻟﺘﻰ ﻳﻤﻜﻦ ان ﻳﺄﺧﺬهﺎ.
ﻟﻠﺘﺤﻮﻳﻞ ﻣﻦ درﺟﺔ ﺣﺮارة ﺳﻠﻴﺰﻳﻮس اﻟﻰ درﺟﺔ ﺣﺮارة ﻓﻬﺮﻧﻬﻴﺖ ﻧﺴﺘﺨﺪم هﺬة اﻟﻌﻼﻗﺔ
اذا ﺳﻮف ﻧﺤﺘﺎج اﻟﻰ داﻟﺔ اﻟﻀﺮب Multiplyو داﻟﺔ اﻟﺠﻤﻊ Addﻟﻌﻤﻞ اﻟﺘﺤﻮﻳﻞ اﻟﻤﻄﻠﻮب واﻳﻀﺎ
ﻧﺤﺘﺎج ﺛﺎﺑﺘﻴﻦ ﺑﺎﻟﻘﻴﻢ ١٫٨و .٣٢٫٠
!Error
اﺳﺤﺐ رﻣﺰ اﻟﺪاﻟﺔ اﻟﻰ اﻟﻤﻜﺎن اﻟﺬى ﺗﺮﻳﺪﻩ ﺛﻢ اﺿﻐﻂ ﺑﺎﻟﺰر اﻻﻳﺴﺮ ﻟﻠﻤﺎوس ﻟﻮﺿﻌﻪ ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى
ﺣﺪدﺗﻪ.
-٢ادراج داﻟﺔ اﻟﺠﻤﻊ .Add
!Error
اﺳﺤﺐ رﻣﺰ اﻟﺪاﻟﺔ اﻟﻰ اﻟﻤﻜﺎن اﻟﺬى ﺗﺮﻳﺪﻩ ﺛﻢ اﺿﻐﻂ ﺑﺎﻟﺰر اﻻﻳﺴﺮ ﻟﻠﻤﺎوس ﻟﻮﺿﻌﻪ ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى
ﺣﺪدﺗﻪ.
اﺳﺤﺐ Numeric Constantاﻟﻰ اﻟﻤﻜﺎن اﻟﺬى ﺗﺮﻳﺪﻩ ﺛﻢ اﺿﻐﻂ ﺑﺎﻟﺰر اﻻﻳﺴﺮ ﻟﻠﻤﺎوس ﻟﻮﺿﻌﻪ
ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى ﺣﺪدﺗﻪ.
ﻳﻈﻬﺮ Numeric Constantوداﺧﻠﻪ رﻗﻢ ٠ﻣﻈﻠﻞ .اى اﻧﻪ ﻳﻤﻜﻨﻚ آﺘﺎﺑﺔ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺗﺮﻳﺪهﺎ
ﻣﺒﺎﺷﺮة.
-٤اﻟﺮﺑﻂ او اﻟﺘﻮﺻﻴﻞ
. اﻻن وﺑﻌﺪ ادراج اﻟﺪوال واﻟﺜﻮاﺑﺖ ﻧﻘﻮم ﺑﺎﻟﺮﺑﻂ ﺑﻴﻨﻬﻢ ﺑﺄﺳﺘﺨﺪام اداة اﻟﺮﺑﻂ
ﺗﻠﻘﺎﺋﻴﺎ ﻋﻨﺪ وﺿﻌﻬﺎ ﻋﻠﻰ اﻟﻤﺪاﺧﻞ او اﻟﻤﺨﺎرج ) ( Terminalاو ﻣﻤﻜﻦ ﺗﻈﻬﺮ اداة اﻟﺮﺑﻂ
ان ﺗﺨﺘﺎرهﺎ ﻣﻦ .Palette Tools
ﻳﺘﺤﺮك ﻣﻌﻚ اﻟﺨﻂ. ﻻﺣﻆ ﺑﻌﺪ رﺑﻂ اﻟﺨﻂ ﺑـ Control Terminalﻋﻨﺪﻣﺎ ﺗﺤﺮك اداة اﻟﺮﺑﻂ
ﻧﻜﻤﻞ ﺑﺎﻗﻰ اﻟﻮﺻﻼت آﻤﺎ ﺑﺎﻟﺸﻜﻞ
ﻻﺣﻆ
ﻣﻤﺎ اﺛﻨﺎء آﺘﺎﺑﺔ اﻟﺒﺮﻧﺎﻣﺞ و اﻻن اﺻﺒﺤﺖ هﻜﺬا -٢ان اﻳﻘﻮﻧﺔ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ آﺎﻧﺖ هﻜﺬا
ﻳﻌﻨﻰ اﻧﻪ ﻻ ﻳﻮﺟﺪ ﺧﻄﺄ ﻓﻰ اﻟﻮﺻﻼت وان اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻦ ان ﻳﻨﻔﺬ.
او اﺧﺘﺮ Save As <<Fileاذا آﻨﺖ ﺧﺰﻧﺘﻪ ﻣﻦ ﻗﺒﻞ وﺗﺮﻳﺪ ان ﺗﺨﺰﻧﺔ ﺑﺎﺳﻢ اﺧﺮ او ﻓﻰ ﻣﻜﺎن
اﺧﺮ.
ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ
ﻓﻰ Tool barﻟﺘﻈﻬﺮ ﻗﻴﻤﺔ درﺟﺔ اﻟﺤﺮارة ﺛﻢ ﻗﻢ ﺑﺘﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﺳﺘﺨﺪام اﻳﻘﻮﻧﺔ اﻟﺘﻨﻔﻴﺬ
ﺑﺎﻟﻔﻬﺮﻧﻬﻴﺖ ﻓﻰ .Deg F Indicator
ﻟﺘﺼﺒﺢ هﻜﺬا ﻳﻤﻜﻨﻚ ان ﺗﺴﺘﺨﺪم اﻟﺘﻨﻔﻴﺬ اﻟﻤﺴﺘﻤﺮ ﻻﻋﺎدة ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻠﻘﺎﺋﻴﺎ ﺑﺎﻟﻀﻐﻂ اﻻﻳﻘﻮﻧﺔ
.
i
25........................................................................................ . Probe اﺳﺘﺨﺪام-3
26................................................................................... :Generic Probe-1
27................................................................. :Probe ﻓﻰIndicator اﺳﺘﺨﺪام-2
29............................................................................... : Supplied Probes-3
31.................................................................................. :Custom Probe -4
33............................................................ :()ﻧﻘﺎط اﻟﺘﻮﻗﻒBreakpoints اﺳﺘﺨﺪام-4
ii
هﺪف اﻟﺪرس
iii
ﺗﺤﺮﻳﺮ VI
1
ﻋﻠﻰ اﻟﻮﺣﺪات اﻟﻤﺮاد وﻻﺧﺘﻴﺎر اآﺜﺮ ﻣﻦ وﺣﺪة ﻧﻀﻐﻂ اﻟﻤﻔﺘﺎح Shiftﻣﻊ اﻟﻀﻐﻂ ﺑﺎﻻداة
اﺧﺘﻴﺎرهﺎ.
ﻋﻠﻰ اى ﻣﻜﺎن وﺳﺤﺐ ااﻟﻤﺆﺷﺮ ﻣﻊ اﺳﺘﻤﺮار اﻟﻀﻐﻂ ﻟﻨﺨﺘﺎر ﺟﻤﻴﻊ وﻳﻤﻜﻦ اﻳﻀﺎ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻻداة
اﻟﻮﺣﺪات اﻟﺘﻰ ﻧﺮﻳﺪهﺎ
2
ﻓﺒﻌﺪ اﺧﺘﻴﺎر اﻟﻮﺣﺪة ﻳﻤﻜﻨﻚ ان ﺗﻘﻮم ﺑﺴﺤﺒﻬﺎ اﻟﻰ اى ﻣﻜﺎن او ان ﺗﺴﺘﺨﺪم اﻻﺳﻬﻢ ﻓﻰ ﺗﺤﺮﻳﻚ اﻟﻮﺣﺪات
اﻟﻤﺨﺘﺎرة.
وﻳﻤﻜﻦ ﻋﻨﺪ اﺳﺘﺨﺪام اﻟﺴﻬﻢ ﻓﻰ اﻟﺘﺤﺮﻳﻚ ان ﺗﻀﻐﻂ اﻟﻤﻔﺘﺎح Shiftﻣﻊ اﻟﺴﻬﻢ ﻟﺘﺴﺮﻳﻊ ﻋﻤﻠﻴﺔ اﻟﺘﺤﺮﻳﻚ.
ﺛﻢ ﺿﻐﻂ اﻟﻤﻔﺘﺎح Deleteاو اﺧﺘﻴﺎر Edit>>Clear ﻳﺘﻢ ﺣﺬف اﻟﻮﺣﺪات ﺑﺎﺧﺘﻴﺎرهﺎ اوﻻ ﺑﺎﻻداة
اﻟﻐﺎء اﻟﺨﻄﻮات ): (Undo/Redo
ﻟﻮ ﻗﻤﺖ ﺑﻌﻤﻞ ﺑﻌﺾ اﻟﺨﻄﻮات وﺗﺮﻳﺪ اﻟﻐﺎﺋﻬﺎ اﺳﺘﺨﺪم Undoﻣﻦ اﻟﻘﺎﺋﻤﺔ Editوﻻﻋﺎدة ﺗﻠﻚ
اﻟﺨﻄﻮات ﺑﻌﺪ اﻟﻐﺎﺋﻬﺎ اﺧﺘﺮ Redoﻣﻦ ﻧﻔﺲ اﻟﻘﺎﺋﻤﺔ.
ﻧﺴﺦ اﻟﻮﺣﺪات:
اذا اردت ان ﺗﺤﺼﻞ ﻋﻠﻰ اآﺜﺮ ﻣﻦ ﻧﺴﺨﺔ ﻣﻦ اى وﺣﺪة.
ﺛﻢ ﻗﻢ ﺑﺎﻟﻀﻐﻂ اﻟﻤﻔﺘﺎح Ctrlﺛﻢ اﺳﺤﺐ اﻟﻮﺣﺪة ﻻى ﻣﻜﺎن اﺧﺮ ﻣﻊ او اﺧﺘﺮ اﻟﻮﺣﺪة ﺑﺎﻻداة
اﺳﺘﻤﺮار ﺿﻐﻂ اﻟﻤﻔﺘﺎح
.
3
اﺿﺎﻓﺔ ﻋﻨﻮان ): (Label
ﻳﺴﺘﺨﺪم اﻟﻌﻨﻮان ﻟﺘﻌﺮﻳﻒ اﻟﻮﺣﺪات .
4
اﺧﺘﻴﺎر وﺣﺬف اﻟﺮواﺑﻂ ): (Wires
ﻳﺴﻤﻰ اى ﺟﺰء اﻓﻘﻰ او رأﺳﻰ ﻓﻰ اﻟﺮاﺑﻂ ﺑﺎﺳﻢ . Wire Segment
ﻟﻜﻦ اذا آﺎت ﻧﻘﻄﺔ اﻻﻟﺘﻘﺎء ﺑﻴﻦ ﺛﻼﺛﺔ Wire Segmentاو اآﺜﺮ ﺗﺴﻤﻰ . Junction
5
. وﻻﺧﺘﻴﺎر Wire Segmentﻧﻀﻐﻂ ﻋﻠﻰ اﻟﺮاﺑﻂ ﺿﻐﻄﺔ واﺣﺪة ﺑﺎﺳﺘﺨﺪام اﻻداة
6
ﺑﻌﺪ اﺧﺘﻴﺎر اى ﺟﺰء ﻳﻤﻜﻦ ﺣﺬﻓﻪ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح .Delete
ﻳﻤﻜﻦ ﺣﺬف اﻟﺮاوﺑﻂ اﻟﻤﻘﻄﻮﻋﺔ ﺑﺎﻟﻄﺮﻳﻘﺔ اﻟﻌﺎدﻳﺔ ﺑﺎﺧﺘﻴﺎر اﻟﺮاﺑﻂ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻪ ﺛﻼث ﺿﻐﻄﺎت ﻣﺘﺘﺎﻟﻴﺔ
ﺛﻢ ﺿﻐﻂ اﻟﻤﻔﺘﺎح . Delete
او ﺿﻐﻂ Remove Edit Wiresﻣﻦ اﻟﻘﺎﺋﻤﺔ Editاو ﺑﺎﻟﻀﻐﻂ Ctrl+Bﻟﺤﺬف ﺟﻤﻴﻊ اﻟﺮواﺑﻂ
اﻟﻤﻘﻄﻮﻋﺔ.
ﺗﺤﺬﻳﺮ :ﻳﺠﺐ ﺗﻮﺧﻰ اﻟﺤﺬر ﻋﻨﺪ ﺣﺬف ﺟﻤﻴﻊ اﻟﺮواﺑﻂ اﻟﻤﻘﻄﻮﻋﺔ وذﻟﻚ ﻻن ﻓﻰ ﺑﻌﺾ اﻻﺣﻴﺎن ﺗﻈﻬﺮ
ﺑﻌﺾ اﻟﺮواﺑﻂ ﻣﻘﻄﻮﻋﺔ ﻻﻧﻚ ﻟﻢ ﺗﻜﻤﻞ ﺑﻌﺪ ﺗﻮﺻﻴﻞ ﺑﺎﻗﻰ اﻟﺮواﺑﻂ.
7
ﺗﻐﻴﻴﺮ ﺧﺼﺎﺋﺺ اﻟﺨﻂ :
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ Fontو Styleو ﺣﺠﻢ اﻟﺨﻂ ﻷى ﻧﺺ ﺑﺎﺧﺘﻴﺎر اﻟﻨﺺ اﻟﺬى ﻧﺮﻳﺪ ﺗﻌﺪﻳﻞ ﺧﺼﺎﺋﺺ
اﻟﺨﻂ ﻟﻪ و ﺗﻐﻴﻴﺮ اﻟﺨﺼﺎﺋﺺ ﻣﻦ اﻟﻘﺎﺋﻤﺔ اﻟﻤﻨﺴﺪﻟﺔ .Text Setting
8
ﻣﺤﺎزاة اﻟﻮﺣﺪات ): (Align Objects
اذا اردت ﻣﺤﺎزاة ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻮﺣﺪات ﻗﻢ ﺑﺎﺧﺘﻴﺎرهﺎ اوﻻ ﺛﻢ اﺧﺘﺮ ﻧﻮع اﻟﻤﺤﺎزاة ﻣﻦ اﻟﻘﺎﺋﻤﺔ Align
.Objects
9
ﺿﺒﻂ اﻟﻤﺴﺎﻓﺎت ﺑﻴﻦ اﻟﻮﺣﺪات :
اﺧﺘﺮ اﻟﻮﺣﺪات اﻟﺘﻰ ﺗﺮﻳﺪ ﺿﺒﻂ اﻟﻤﺴﺎﻓﺎت ﺑﻴﻨﻬﺎ ﺛﻢ اﺧﺘﺮ آﻴﻔﻴﺔ ﺿﺒﻂ اﻟﻤﺴﺎﻓﺎت ﻣﻦ اﻟﻘﺎﺋﻤﺔ Distribute
Objects
ﺛﻢ اﺿﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ اﻟﻮﺣﺪة اﻟﺘﻰ ﺗﺮﻳﺪ ﺗﻐﻴﻴﺮ ﻟﻮﻧﻬﺎ وﻟﺘﻐﻴﻴﺮ اﻟﻠﻮن اﺧﺘﺮ اﻻداة Coloring
ﺛﻢ اﺧﺘﺮ اﻟﻮن اﻟﺬى ﺗﺮﻳﺪﻩ.
10
ﻟﺠﻌﻞ اﻟﻮﺣﺪات ﺷﻔﺎﻓﺔ اﺧﺘﺮ Tﻣﻦ ﻟﻮﺣﺔ اﻻﻟﻮان )اﻟﻤﻮﺟﻮد داﺧﻞ اﻟﺪاﺋﺮاﻟﺼﻔﺮاء ﻓﻰ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ(
11
اﻟﺘﻌﺮف ﻋﻠﻰ LabVIEW Help
ﻧﻈﺮ ﻻهﻤﻴﺔ اﺳﺘﺨﺪام LabVIEW Helpﻓﻰ اﻧﺸﺎء واﺧﺘﺒﺎر VIواﻟﺘﻌﺮف ﻋﻠﻰ اﻻﺧﻄﺎء اﻟﻤﻮﺟﻮدة
ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ.ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ اﺳﺘﺨﺪام LabVIEW Helpﻗﺒﻞ اﻟﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ اﺧﺘﺒﺎر
.VI
12
ﻋﻨﺪ ﺗﺤﺮﻳﻚ اﻟﻤﺆﺷﺮ ﻋﻠﻰ اى وﺣﺪة ﻣﻮﺟﻮدة ﻓﻰ Front Panelاو SubVi ) Block Diagram
او Functionاو Constantاو Controlاو ( Indicatorﺗﻈﻬﺮ هﺬة اﻟﻮﺣﺪة ﻓﻰ Context
Helpﻋﻠﻰ ﺷﻜﻞ اﻳﻘﻮﻧﺔ ) (iconﻣﻮﺿﺢ ﺑﻬﺎ Terminalsوﻋﻨﺎوﻳﻨﻬﺎ.
13
: Recommended Terminals -2
ﻳﻔﻀﻞ ان ﺗﻘﻮم ﺑﺎﻟﺘﻮﺻﻴﻞ اﻟﻴﻬﺎ) ﻳﻌﻨﻰ اﻧﻚ اذا ﻟﻢ ﺗﻘﻢ ﺑﺎﻟﺘﻮﺻﻴﻞ اﻟﻴﻬﺎ ﺳﺘﺄﺧﺬ هﺬة Terminals
اﻟﻘﻴﻢ اﻻﻓﺘﺮاﺿﻴﺔ ( Defaultو ﺗﻈﻬﺮ ﻋﻨﺎوﻳﻦ هﺬة Terminalsﺑﺎﻟﺨﻂ اﻟﻌﺎدى ). (Plain text
وﻳﻤﻜﻦ ﺗﻨﻔﻴﺬ VIﺑﺪون ﺗﻮﺻﻴﻞ هﺬة Terminalsﻓﻬﻰ ﺳﺘﺄﺧﺬ اﻟﻘﻴﻢ اﻻﻓﺘﺮﺿﻴﺔ.
14
: Optional Terminals -3
اﺧﺘﻴﺎرﻳﺔ اﻟﺘﻮﺻﻴﻞ .ﺗﻈﻬﺮ ﻋﻨﺎوﻳﻦ هﺬة Terminalsﺑﺎﻟﺨﻂ اﻟﺒﺎهﺖ.
15
:Lock Context Help -2
هﺬا اﻟﻤﻔﺘﺎح ﻳﻘﻮم ﺑﺘﺜﺒﻴﺖ ﻣﺤﺘﻮﻳﺎت اﻟﻨﺎﻓﺬة Context Helpﻓﻔﻰ هﺬة اﻟﺤﺎﻟﺔ ﻋﻨﺪﻣﺎ ﻧﺸﻴﺮ ﺑﺎﻟﻤﺆﺷﺮ
ﻋﻠﻰ وﺣﺪات اﺧﺮى ﻻ ﺗﺘﻐﻴﺮ ﻣﺤﺘﻮﻳﺎت اﻟﻨﺎﻓﺬة.
16
ﺛﺎﻧﻴﺎ : LabVIEW Help -
ﻳﻮﺟﺪ ﻣﻊ LabVIEWﻣﻠﻔﺎت Helpآﺎﻣﻠﺔ ﻋﻦ اى ﺷﻰء ﺗﺮﻳﺪﻩ ﻟﻠﺒﺮﻣﺠﺔ ﺑﻮاﺳﻄﺔ .LaBVIEW
وﻟﻘﺪ رأﻳﻨﺎ اﻧﻨﺎ ﻳﻤﻜﻦ ﻓﺘﺢ LabVIEWﻣﻦ ﺧﻼل ﻧﺎﻓﺬة .Context Help
آﻤﺎ ﻳﻤﻜﻦ ﻓﺘﺢ LabVIEW Helpﻣﻦ اﻟﻘﺎﺋﻤﺔ
Help >>Search the LabVIEW Help
17
ﺛﺎﻟﺜﺎ : NI Example Finder -
ﻳﻮﺟﺪ ﻣﻊ ﻧﺴﺨﺔ LabVIEWآﺜﻴﺮ ﻣﻦ اﻻﻣﺜﻠﺔ اﻟﺘﻰ ﻳﻤﻜﻦ ان ﺗﻘﻮم ﺑﺎﻟﺘﻌﺪﻳﻞ ﻓﻴﻬﺎ ﻟﺘﻨﺎﺳﺐ اﻟﺘﻄﺒﻴﻖ اﻟﺬى
ﺗﺮﻳﺪﻩ وﻳﻜﻦ ﻧﺴﺦ ﺑﻌﺾ اﻻﺟﺰاء ﻣﻨﻬﺎ ﻻﺳﺘﺨﺪاﻣﻬﺎ ﻓﻰ ﺗﻄﺒﻴﻘﻚ آﻤﺎ اﻧﻬﺎ ﺗﻔﻴﺪ ﻓﻰ ﻓﻬﻢ آﺜﻴﺮ ﻣﻦ
اﻟﻤﻮﺿﻮﻋﺎت ﻓﻰ ﺑﺮﻣﺠﺔ .LabVIEW
وﻳﺴﺘﺨﺪم NI Example Finderﻓﻰ اﻟﺒﺤﺚ واﻟﺤﺼﻮل ﻋﻠﻰ اﻟﻤﺜﺎل اﻟﺬى ﺗﺮﻳﺪﻩ ﺳﻮاء آﺎن ﻣﻮﺟﻮدا
ﻣﻊ ﻧﺴﺨﺔ LabVIEWاو ﻋﻠﻰ ﻣﻮﻗﻊ ﺷﺮآﺔ .NI
وﻳﺘﻢ اﺳﺘﺪﻋﺎء NI Example Finderﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ Find Examplesﻓﻰ اﻟﺸﺎﺷﺔ اﻻﻓﺘﺘﺎﺣﻴﺔ ﻟـ
.(Getting Started) LabVIEW
18
او ﺑﺎﺧﺘﻴﺎر
Help>>Find Example
و NI Example Finderﺳﻬﻞ اﻻﺳﺘﺨﺪام ﻓﺒﻌﺪ ﺗﺤﺪﻳﺪ اﻟﻤﺜﺎل اﻟﺬى ﺗﺮﻳﺪﻩ ﺗﻘﻮم ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻪ
ﺑﺎﻟﻤﺎوس ﺿﻐﻄﺘﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻴﻦ ﻟﻴﻘﻮم LabVIEWﺑﺘﺤﻤﻴﻞ اﻟﻤﺜﺎل.
19
20
اﺻﻼح اﻻﺧﻄﺎء ﻓﻰ VI
وهﺬا ﻳﻌﻨﻰ ان ﻋﻨﺪﻣﺎ ﻳﻮﺟﺪ ﺧﻄﺄ ﻣﺎ ﻓﻰ رﺑﻂ اﻟﻮﺣﺪات ﻓﻰ VIﻳﻈﻬﺮ ﻣﻔﺘﺎح اﻟﺘﻨﻔﻴﺬ ﺑﻬﺬة اﻟﺼﻮرة
VIﺗﺤﺘﻮى ﻋﻠﻰ اﺧﻄﺎء و ﻏﻴﺮ ﻗﺎﺑﻠﻪ ﻟﻠﺘﻨﻔﻴﺬ.
ﻟﺘﻨﻔﻴﺬ VIﻳﺠﺐ اﺻﻼح اﻻﺧﻄﺎء اوﻻ وﻟﻤﻌﺮﻓﺔ اﻻﺧﻄﺎء واﺳﺘﻜﺸﺎف اﺳﺒﺎﺑﻬﺎ ﻧﻀﻐﻂ اﻟﻤﻔﺘﺎح
او ﻧﺨﺘﺎر
View>>Error List
21
وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﻣﻔﺘﺎح Helpﻓﻰ اﻟﻘﺎﺋﻤﺔ اﻟﺴﺎﺑﻘﺔ ﻧﻌﺮض اﻟﻤﻮﺿﻮع اﻟﻤﻮﺟﻮد ﻓﻰ LabVIEW
Helpواﻟﺬى ﻳﺸﺮح اﻟﺨﻄﺄ ﺑﺎﻟﺘﻔﺼﻴﻞ وﻃﺮﻳﻘﺔ اﺻﻼﺣﺔ ﺧﻄﻮة ﺑﺨﻄﻮة.
وﻣﻦ اآﺜﺮ اﻻﺧﻄﺎء ﺷﻴﻮﻋﺎ هﻰ اﻟﺮﺑﻂ ﺑﻴﻦ وﺣﺪﺗﻴﻦ ﻣﺨﺘﻠﻔﺘﻴﻦ ﻓﻰ Data Type
وﻳﺠﺐ ان ﻳﺘﻢ اﺻﻼح ﺟﻤﻴﻊ اﻻﺧﻄﺎء واﻟﺘﺄآﺪ ﻣﻦ ﺟﻤﻴﻊ اﻟﺮوﺑﻂ ) (Wiresﺣﺘﻰ ﻳﺼﺒﺢ ﻣﻔﺘﺎح اﻟﺘﻨﻔﻴﺬ
اى ان VIﻗﺎﺑﻠﺔ ﻟﻠﺘﻨﻔﻴﺬ. ﺑﻬﺬا اﻟﺸﻜﻞ
22
اﺧﺘﺒﺎر VI
اذا ﺗﻢ اﺻﻼح ﺟﻤﻴﻊ اﻻﺧﻄﺎء واﺻﺒﺤﺖ VIﻗﺎﺑﻠﺔ اﻟﺘﻨﻔﻴﺬ وﻟﻜﻦ ﻟﻢ ﺗﻨﻔﺬ VIﺑﺎﻟﺼﻮرة اﻟﻤﺘﻮﻗﻌﺔ او اﻧﻬﺎ
ﺗﻌﻄﻰ ﺧﻄﺄ ﻓﻰ اﻟﻨﺘﺎﺋﺞ ﻓﻼﺑﺪ ﻣﻦ اﺧﺘﺒﺎر ﺗﻨﻔﻴﺬ .VIو LabVIEWﻳﺘﻴﺢ ﻟﻨﺎ ﻋﺪة ادوات ﻟﺘﺘﺒﻊ ﺗﻨﻔﻴﺬ
اﻟﺒﺮﻧﺎﻣﺞ و اﺧﺘﺒﺎرﻩ ﻣﻨﻬﺎ:
-1ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﺳﺘﺨﺪام . Highlight Execution
23
وﻟﺒﺪاﻳﺔ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻨﻈﺎم اﻟﺨﻄﻮة ﻧﻀﻐﻂ اﺣﺪ اﻟﻤﻔﺎﺗﻴﺢ اﻟﺴﺎﺑﻘﺔ.
ﻳﺘﻢ ﺗﻨﻔﻴﺬ Nodeاﻟﺤﺎﻟﻴﺔ وﺗﻜﻮن و Step Over وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎﺣﻴﻦ Step Into
Nodeاﻟﺘﺎﻟﻴﺔ ﺟﺎهﺰة اﻟﺘﻨﻔﻴﺬ ﻓﻰ اﻟﺨﻄﻮة اﻟﺘﺎﻟﻴﺔ.
ﻳﺘﻢ ﺗﻨﻔﻴﺬ Nodeﻓﻰ ﺧﻄﻮة واﺣﺪة وﻻ ﻳﺘﻢ اﻟﺪﺧﻮل ﻓﻴﻬﺎ ﻋﻨﺪ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح Step Over
ﻓﻤﺜﻼ ﻟﻮ ان Nodeﻋﺒﺎرة ﻋﻦ SubVIﻓﺴﻮف ﻳﺘﻢ ﺗﻨﻔﻴﺬهﺎ آﺎﻣﻠﺔ ﻓﻰ ﺧﻄﻮة واﺣﺪة و ﻳﺘﻢ اﻻﻧﺘﻘﺎل اﻟﻰ
Nodeاﻟﺘﺎﻟﻴﺔ ﻓﻰ اﻟﺨﻄﻮة اﻟﺘﺎﻟﻴﺔ دون اﻟﺪﺧﻮل ﻓﻰ اﻟﺘﻔﺎﺻﻴﻞ اﻟﺪاﺧﻠﻴﺔ ﻓﻰ ﺗﻨﻔﻴﺬ ﺗﻠﻚ .SubVI
ﻳﺘﻢ اﻟﺪﺧﻮل ﻓﻰ SubVIﺧﻄﻮة ﻟﺘﻨﻔﺬ SubVIﺧﻄﻮة اﻣﺎ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح Step Into
ﺑﺨﻄﻮة اﻳﻀﺎ.
ﻻﻧﻬﺎء Block Diagramاو Structureاو VIاﻟﺬى ﻳﻨﻔﺬ ﺣﺎﻟﻴﺎ وﻗﺖ ﻳﺴﺘﺨﺪم Step Out
اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﻔﺘﺎح ﻟﻴﺘﻮف اﻟﺘﻨﻔﻴﺬ ﻋﻨﺪ اﻟﺨﻄﻮة ﻟﺘﺎﻟﻴﺔ او اﻧﺘﻬﺎء اﻟﺘﻨﻔﻴﺬ ﺗﻤﺎﻣﺎ.
ﺑﺘﺤﺮﻳﻚ ﻣﺆﺷﺮ اﻟﻤﺎوس ﻋﻠﻰ ﺗﻠﻚ اﻟﻤﻔﺎﺗﻴﺢ ﻓﻰ اى ﻣﺮﺣﻠﺔ ﺳﻮف ﻳﻈﻬﺮ ﻟﻨﺎ ﻧﺺ ﻳﻮﺿﺢ ﻣﺎ اﻟﺬى ﺳﻴﺤﺪث
ﻟﻮ ﺿﻐﻄﻨﺎ هﺬة اﻟﻤﻔﺎﺗﻴﺢ.
ﻟﺘﻜﻤﻠﺔ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﺎﻟﻄﺮﻳﻘﺔ ﻳﻤﻜﻦ اﺛﻨﺎء اﻟﺘﻨﻔﻴﺬ ﺑﻨﻈﺎم اﻟﺨﻄﻮة اﻟﻀﻐﻂ ﻋﻠﻰ ااﻟﻤﻔﺘﺎح Pause
اﻟﻌﺎدﻳﺔ
24
ﻋﻨﺪ اﻟﺘﻨﻔﻴﺬ ﺑﺎﻟﺨﻄﻮة و ﺗﻔﻌﻴﻞ اﻟﻤﻔﺘﺎح Highlightﻳﻈﻬﺮ ﺳﻬﻢ ﻋﻠﻰ اﻳﻘﻮﻧﺔ SubVIﻋﻨﺪﻣﺎ ﻓﻰ ﺗﻜﻮن
ﻓﻰ ﺣﺎﻟﺔ ﺗﻨﻔﻴﺬ.
-3اﺳﺘﺨﺪام . Probe
ﻳﺴﺘﺨﺪم Probeﻟﻤﻌﺮﻓﺔ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺴﺎرات وﻗﺖ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
• وﻳﺴﺘﺨﺪم Probeﻓﻰ ﺣﺎﻟﺔ اذا آﺎن اﻟﺒﺮﻧﺎﻣﺠﻚ ﻣﻌﻘﺪا وﻳﻌﻄﻰ ﻧﺘﺎﺋﺞ ﻏﻴﺮ ﺻﺤﻴﺤﺔ ﻓﻬﻰ ﺗﺘﻴﺢ
ﻣﻌﺮﻓﺔ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اى ﻣﺴﺎر ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
25
• وﻳﻤﻜﻦ وﺿﻊ اآﺜﺮ ﻣﻦ Probeﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ .وداﺋﻤﺎ ﻣﺎ ﻳﻜﻮن Probeﻇﺎهﺮا ﻓﻰ اﻟﻤﻘﺪﻣﺔ
ﺳﻮاء آﻨﺖ ﺗﺴﺘﺨﺪم Front Panelاو .Block Diagram
• ﻳﻤﻜﻦ اﺳﺘﺨﺪام Probeﻣﻊ اﻟﺘﻨﻔﻴﺬ ﺑﻮاﺳﻄﺔ Highlightاو اﻟﺘﻨﻔﻴﺬ ﺧﻄﻮة ﺑﺨﻄﻮة او ﻣﻊ
) Breakpointsﺳﻨﺸﺮﺣﻬﺎ ﻓﻰ اﻟﻔﻘﺮة اﻟﻘﺎدﻣﺔ( ﻟﻤﻌﺮﻓﺔ ﻣﻜﺎن اﻟﺨﻄﺄ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ .
• ﻻ ﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ اﻟﻘﻴﻢ اﻟﺘﻰ ﺗﻈﻬﺮ ﻓﻰ ﻧﺎﻓﺬة . Probe
• ﻻﻳﺘﺄﺛﺮ ﺗﻨﻔﻴﺬ VIﺑـ Probesاﻟﻤﻮﺟﻮدة ﻋﻠﻰ ﻣﺴﺎراﺗﻬﺎ.
وﻳﻤﻜﻦ اﻟﺤﺼﻮل ﻋﻠﻰ Generic Probeﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺴﺎر واﺧﺘﻴﺎر
.Probeوهﺬا اذا ﻟﻢ ﻳﻜﻦ ﻣﺤﺪدا ﻣﻦ ﻗﺒﻞ ﻣﻦ ﺧﻼل ) Custom Probeﺳﻴﺄﺗﻰ ﺷﺮﺣﻬﺎ ﻓﻰ هﺬا
اﻟﺪرس( ﻟﻨﻮع اﻟﺒﻴﺎﻧﺎت ) (Data Typeاﻟﻤﻮﺟﻮد ﻋﻠﻰ هﺬا اﻟﻤﺴﺎر.
26
-2اﺳﺘﺨﺪام Indicatorﻓﻰ :Probe
ﻳﻤﻜﻦ اﺳﺘﺨﺪام Indicatorﻓﻰ Probeﻟﻌﺮض اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ اﻟﻤﺴﺎرات اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﻧﺴﺘﺨﺪم Indicatorاﻟﻤﻨﺎﺳﺐ ﻟﻠﺒﻴﺎﻧﺎت.
ﻓﻤﺜﻼ ﻳﻤﻜﻦ اﺳﺘﺨﺪام Chartﻓﻰ Probeﻟﻤﻌﺮﻓﺔ اﻟﺒﻴﺎﻧﺎت اﻟﺪاﻟﺔ ﻋﻠﻰ اﺷﺎرة ﻋﻠﻰ اﺣﺪ اﻟﻤﺴﺎرات .
وﻟﻮﺿﻊ Indicatorﻓﻰ Probeﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺴﺎر وﻧﺨﺘﺎر
Custom Probe>>Controls
ﺛﻢ ﻧﺨﺘﺎر Controlاﻟﺬى ﻧﺮﻳﺪﻩ
27
هﺬا هﻮ Probeاﻟﺬى ﺗﻢ ﻋﻤﻠﻪ
28
: Supplied Probes-3
وهﻰ ﻋﺒﺎرة ﻋﻦ VIﺗﻌﻄﻰ ﻣﻌﻠﻮﻣﺎت اآﺜﺮ ﺷﻤﻮﻟﻴﺔ ﻋﻦ اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻋﻠﻰ اﻟﻤﺴﺎر.
وﻓﻤﺜﻼ ) VI Refnum Probeﺳﻴﺘﻢ ﺷﺮح Refnumﻓﻰ اﻟﺪروس اﻟﻘﺎدﻣﻪ ان ﺷﺎء اﷲ(ﻳﻌﻄﻰ
ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﺳﻢ VIو ﻣﺴﺎر ﺗﺨﺰﻳﻨﻪ و ﻗﻴﻤﻪ Hexاﻟﺨﺎﺻﺔ ﺑﺎﻟـ .Ref
وﻳﻤﻜﻦ ان ﺗﺘﻔﺎﻋﻞ هﺬة Probeﻣﻊ اﻟﺒﺮﻧﺎﻣﺞ .ﻓﻤﺜﻼ ﻳﻤﻜﻦ وﺿﻊ ﺷﺮط ﻋﻨﺪﻣﺎ ﻳﺘﺤﻘﻖ ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت
اﻟﻤﻮﺟﻮدة ﻋﻠﻰ اﻟﻤﺴﺎر ﻳﺘﻢ اﻳﻘﺎف ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ
ﺗﻈﻬﺮ Supplied Probeﻓﻰ اﻋﻠﻰ ﻗﺎﺋﻤﺔ .Custom Probeوهﻰ ﺗﺨﺘﻠﻒ ﺣﺴﺐ ﻧﻮع اﻟﺒﻴﺎﻧﺎت
اﻟﻤﻮﺟﻮدة ﻋﻠﻰ اﻟﻤﺴﺎر .
29
30
:Custom Probe -4
ﻳﻤﻜﻦ ﻋﻤﻞ Custom Probeﺧﺎص ﺑﻚ وذﻟﻚ ﺑﺎﻟﺘﻌﺪﻳﻞ ﻓﻰ Probeﻣﻮﺟﻮد ﻓﻌﻼ او اﻧﺸﺎء Probe
ﺟﺪﻳﺪ.وﻻﻧﺸﺎء Probeﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺴﺎر ﺛﻢ ﻧﺨﺘﺎر
Custom Probe>>New
ﻓﺘﻈﻬﺮ ﻟﻨﺎ ﻣﺠﻤﻮع ﻧﻮاﻓﺬ ﺗﺤﺪد ﻣﻮاﺻﻔﺎت Probeاﻟﺬى ﻧﺮﻳﺪﻩ.
31
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪﻣﺎ ﻳﺘﻢ ﻋﻤﻞ Probeﺧﺎص ﻟﻨﻮع ﻣﻌﻴﻦ ﻣﻦ اﻟﺒﻴﺎﻧﺎت )(Data Typeﻳﺼﺒﺢ هﺬا
Probeهﻮ Probeاﻻﻓﺘﺮاﺿﻰ ﻟﻬﺬ اﻟﻨﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺬى ﻳﻈﻬﺮ ﻋﻨﺪﻣﺎ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ
اﻟﻤﺴﺎر وﻧﺨﺘﺎر .Probe
32
)Breakpoints-4ﻧﻘﺎط اﻟﺘﻮﻗﻒ(:
Breakpointﻓﻰ Block Diagramﻻﻳﻘﺎف ﺗﻨﻔﻴﺬ VI ﺗﻮﺿﻊ ﻧﻘﺎط اﻟﺘﻮﻗﻒ ﺑﻮاﺳﻄﺔ اﻻداة
ﻋﻨﺪ وﺻﻮل اﻟﺘﻨﻔﻴﺬ اﻟﻰ هﺬة اﻟﻨﻘﺎط.
33
وﻳﻤﻜﻦ ان ﺗﻮﺿﻊ Break Pointﻋﻠﻰ VIاو Nodeاو ﻣﺴﺎر ) (Wireﻓﻰ Block diagram
ﻋﻨﺪﻣﺎ ﺗﺘﻮﻗﻒ VIﻋﻨﺪ ﻧﻘﻄﺔ ﺗﻮﻗﻒ ) ( Breakpointﺗﻈﻬﺮ ﻧﺎﻓﺬة Block Diagramﻓﻰ اﻟﻤﻘﺪﻣﺔ
وﻳﺤﺪث وﻣﻴﺾ ﻟﻠﻤﺴﺎر او Nodeاﻟﺬى ﻳﺤﺘﻮى ﻧﻘﻄﺔ اﻟﺘﻮﻗﻒ.
34
ﻣﻤﺎ ﻋﻨﺪ ﺗﺤﺮﻳﻚ اداة Breakpointﻋﻠﻰ ﻧﻘﻄﺔ ﺗﻮﻗﻒ ﻣﻮﺟﻮدة ﻓﻌﻼ ﺗﻈﻬﺮ هﺬة اﻻداة ﺑﻬﺬا اﻟﺸﻜﻞ
ﻳﻌﻨﻰ ان هﻨﺎك ﻧﻘﻄﺔ ﺗﻮﻗﻒ Breakpointﺑﺎﻟﻀﻐﻂ ﺑﻬﺬة اﻻداة ﻋﻠﻰ ﻧﻘﻄﺔ اﻟﺘﻮﻗﻒBreakpoint
ﺗﺰال ﺗﻠﻚ اﻟﻨﻘﻄﺔ.
اﻟﻤﻮﺟﻮدة ﻓﻰ . Toolbar -1ﺗﻜﻤﻠﺔ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻨﻈﺎم اﻟﺨﻄﻮة ﺑﺨﻄﻮة ﺑﻮاﺳﻄﺔ اﻟﻤﻔﺎﺗﻴﺢ
-2اﺳﺘﺨﺪام Probeﻟﻠﺘﺄآﺪ ﻣﻦ اﻟﻘﻴﻢ ﻋﻠﻰ اﻟﻤﺴﺎرت.
-3ﺗﻐﻴﻴﺮ ﻗﻴﻢ اﻟـ Controlsاﻟﻤﻮﺟﻮدة ﻓﻰ .Front Panel
Pauseﻟﺘﻜﻤﻠﺔ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺣﺘﻰ ﻳﺼﻞ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻰ ﻧﻘﻄﺔ ﺗﻮﻗﻒ اﺧﺮى او -4ﺿﻐﻂ اﻟﻤﻔﺘﺎح
ﺣﺘﻰ اﻧﺘﻬﺎ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
ﺗﻤﺮﻳﻦ ﻋﻤﻠﻰ:
ﺷﺎهﺪ اﻟﻌﺮض Debug Exerciseاﻟﻤﻮﺟﻮد ﻣﻊ اﻟﺪرس ﻋﻠﻰ هﻴﺌﺔ ﺻﻔﺤﺔ اﻧﺘﺮﻧﺖ ﺛﻢ ﻗﻢ ﺑﺘﻨﻔﻴﺬﻩ ﻋﻤﻠﻴﺎ.
35
اﻧﺘﻬﻰ اﻟﺪرس اﻟﺜﺎﻟﺚ ﺑﻔﻀﻞ اﷲ
واﻟﻰ اﻟﺪرس اﻟﺮاﺑﻊ ﺑﺎذن اﷲ ﺗﻌﺎﻟﻰ
اﻧﺸﺎء SubVI اﻟﺪرس اﻟﺮاﺑﻊ
اﻟﺪرس اﻟﺮاﺑﻊ
اﻧﺸﺎء SubVI
اﻟﻔﻬﺮس
هﺪف اﻟﺪرس
ﻣﺎ هﻰ SubVI
هﻰ VIآﺎﻣﻠﺔ ﺗﺴﺘﺨﺪم ﻓﻰ Block Diagramاﻟﺨﺎص ﺑـ VIاﺧﺮى.
وهﻰ ﺗﻤﺎﺛﻞ Sub Routineﻓﻰ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ اﻻﺧﺮى ﻣﺜﻞ .C
وهﺬة اﺣﺪى ﻣﻤﻴﺰات LabVIEWﻓﺎن اى VIﻗﻤﺖ ﺑﺎﻧﺸﺎﺋﻬﺎ ﻳﻤﻜﻦ ان ﺗﻌﻴﺪ اﺳﺘﺨﺪاﻣﻬﺎ ﻓﻰ VIاﺧﺮى ﻟﺘﻜﻮﻳﻦ
وﻇﻴﻔﺔ اآﺒﺮ.
وﻳﻤﻜﻦ ان ﺗﺤﺘﻮى VIﻋﻠﻰ ﻋﺪد ﻏﻴﺮ ﻣﺤﺪود ﻣﻦ . SubVIs
وهﺬة SubVIاﻳﻀﺎ ﻳﻤﻜﻦ ان ﺗﺤﺘﻮى ﻋﻠﻰ اﻟﻌﺪﻳﺪ ﻣﻦ .SubVIs
وهﺬا ﻣﺎ ﻳﺴﻤﻰ ﺑﻄﺒﻴﻌﺔ اﻟﺒﻨﺎء اﻟﻬﻴﻜﻠﻰ ) (Hierarchical Natureﻓﻰ . LabVIEWﻓﻜﻞ SubVIﻳﻤﻜﻦ ان
ﺗﺤﺘﻮى هﻰ اﻻﺧﺮى ﻋﻠﻰ .SubVIs
The Icon-1
ﻋﻠﻤﻨﺎ ﻣﻦ اﻟﺪرس اﻻول ان ﻟﻜﻞ VIﻳﻮﺟﺪ . Iconهﺬة اﻻﻳﻘﻮﻧﻪ ﻣﻮﺟﻮدة ﻓﻰ اﻟﺮآﻦ اﻟﻌﻠﻮى اﻻﻳﻤﻦ ﻣﻦ ﻧﺎﻓﺬة
Front panelاو .Block diagram
وهﺬة اﻻﻳﻘﻮﻧﺔ هﻰ ﺗﻤﺜﻞ VIوهﺬة اﻻﻳﻘﻮﻧﺔ ﻳﻤﻜﻦ ان ﺗﺤﺘﻮى ﻋﻠﻰ رﺳﻢ او آﺘﺎﺑﺔ او آﻼهﻤﺎ.
واﻟﺮﻗﻢ اﻟﻤﻮﺟﻮد ﻋﻠﻰ اﻻﻳﻘﻮﻧﻪ هﻮ ﻳﺪل ﻋﻠﻰ ﻋﺪد VIاﻟﺠﺪﻳﺪة اﻟﺘﻰ ﺗﻢ ﻓﺘﺤﻬﺎ و اﻟﺸﻜﻞ اﻟﻤﺒﺪﺋﻰ ﻟﻼﻳﻘﻮﻧﺔ هﻮ
ﻣﻨﺬ ﺗﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺞ . LabVIEWﺑﻤﻌﻨﻰ اﻧﻚ اذا ﻗﻤﺖ ﺑﻌﻤﻞ VIﺟﺪﻳﺪة اﺧﺮى ﺳﺘﻜﻮن اﻳﻘﻮﻧﺘﻬﺎ ﺑﻬﺬا اﻟﺸﻜﻞ
• او ﺑﺎﺧﺘﻴﺎر
File >>VI Properties
ﺛﻢ اﺧﺘﻴﺎر Generalﺛﻢ اﻟﻀﻐﻂ ﻋﻠﻰ Edit Icon
آﻞ اﻟﺨﻴﺎرات اﻟﺴﺎﺑﻘﺔ ﺗﺆدى اﻟﻰ ﻓﺘﺢ .Icon Editorهﺬا اﻟﺒﺮﻧﺎﻣﺞ ﻳﺘﻴﺢ ﺗﻌﺪﻳﻞ ﺷﻜﻞ اﻻﻳﻘﻮﻧﺎت.
Icon Editor
ﺑﻬﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺗﺴﺘﻄﻴﻊ ﺗﺼﻤﻴﻢ Iconاﻟﺘﻰ ﺗﺮﻳﺪهﺎ .
ﻻﺣﻆ ﻣﻦ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ اﻧﻪ ﻳﻤﻜﻦ ان ﻳﻮﺟﺪ Terminalsﻟﻴﺴﺖ ﻣﺮﺑﻮﻃﺔ ﺑﺎى Controlاو .Indicator
واﻳﻀﺎ ﻳﻤﻜﻦ ان ﻳﻜﻮن هﻨﺎك Controlاو Indicatrorﻟﻴﺲ ﻟﻪ Terminalﻣﻘﺎﺑﻞ ﻓﻰ .Connector Pane
وﻳﻔﻀﻞ ان ﺗﺨﺘﺎر Patternﺑﺤﻴﺚ ﻳﻜﻮن هﻨﺎك Terminalsزاﺋﺪة اى ﻟﻦ ﺗﺮﺗﺒﻂ ﺑﺎى Controlاو Indicator
ﻓﻰ اﻟﻮﻗﺖ اﻟﺤﺎﻟﻰ ﺣﺘﻰ ﻳﺴﻬﻞ اﻟﺘﻌﺪﻳﻞ اذا اﺣﺘﺠﺖ ان ﺗﻀﻴﻒ اى Controlاو Indicatorﻓﻰ اﻟﻤﺴﺘﻘﺒﻞ.
اﻗﺼﻰ ﻋﺪد ﻟﻠـ Terminalsهﻮ 28ﻟﻜﻦ ﻳﻔﻀﻞ اﻻ ﺗﺴﺘﺨﺪم اآﺜﺮﻣﻦ .16
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﺗﺮﺗﻴﺐ Terminalsﻓﻰ Connector Paneوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس واﺧﺘﻴﺎر Flip
) Horizontalدوران ﻋﻠﻰ اﻟﻤﺤﻮر اﻻﻓﻘﻰ( او ) Flip Verticalاﻟﺪوران ﻋﻠﻰ اﻟﻤﺤﻮر اﻟﺮأﺳﻰ( او Rotate
) 90 Degreeاو اﻟﺪوران 90درﺟﺔ(
آﻤﺎ ﻳﻤﻜﻦ اﺿﺎﻓﺔ Terminalاو ﺣﺬف .Terminal
ﻣﻠﺤﻮﻇﺎت:
• ﻋﻠﻰ اﻟﺮﻏﻢ ﻣﻦ اﺳﺘﺨﺪام اﻻداة Wiringﻓﻰ اﻟﺮﺑﻂ اﻻ اﻧﻪ ﻻﻳﻮﺟﺪ ﺧﻂ ﻳﺮﺑﻂ ﺑﻴﻦ Terminalsو
Controlsاو .Indicators
• ﻓﻰ ﻋﻤﻠﻴﺔ اﻟﺮﺑﻂ ﻳﻤﻜﻦ ان ﺗﺨﺘﺎر Controlاو Indicatorاوﻻ ﺛﻢ .Terminal
• أذا ﺣﺪث ﺧﻄﺄ ﻓﻰ ﻋﻤﻠﻴﺔ اﻟﺮﺑﻂ ﻳﻤﻜﻦ ان ﺗﺰﻳﻞ آﻞ اﻟﺮواﺑﻂ ﺑﻴﻦ Terminalsو Controlsاو
Indicatorوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ واﺧﺘﻴﺎر .Disconnect all Terminals
• او ﻳﻤﻜﻦ ازاﻟﺔ اﻟﺮاﺑﻂ اﻟﺨﺎص ﻟـ Terminalواﺣﺪ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﺔ ﺑﺎﻟﺰر اﻻﻳﻤﻦ وأﺧﺘﻴﺎر
.Disconnect This Terminal
ﻟﻠﺮﺟﻮع ﻣﻦ Connector Paneاﻟﻰ ﺷﻜﻞ اﻻﻳﻘﻮﻧﺔ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس واﺧﺘﻴﺎر .Show Icon
وﻳﻤﻜﻦ ﻓﺘﺢ هﺬة SubVIﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻻﻳﻘﻮﻧﺔ ﺿﻐﺘﺘﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻴﻦ ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻧﻘﻮم ﺑﺘﻌﺪﻳﻞ ﺷﻜﻞ اﻻﻳﻘﻮﻧﺔ و ﺗﺨﺰﻳﻦ
VIآﻤﺎ ﺳﺒﻖ.
وﻳﻤﻜﻦ ان ﺗﻈﻬﺮ SubVIﺑﺸﻜﻞ اﺧﺮ وهﻮ Expandable Iconوﻳﻈﻬﺮ هﺬا اﻟﺸﻜﻞ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ
ﻟﻠﻤﺎوس ﻋﻠﻰ اﻳﻘﻮﻧﺔ SubVIو اﺧﺘﻴﺎر . View as Icon
Relink to SubVI
ﻋﻨﺪ ﺗﻌﺪﻳﻞ Conector Paneﻟـ ) SubVIﺑﺰﻳﺎدة ﻋﺪد Terminalsﻣﺜﻼ ( وآﺎﻧﺖ هﺬة SubVIﻣﺴﺘﺨﺪﻣﺔ ﻗﺒﻞ
اﻟﺘﻌﺪﻳﻞ ﻓﻰ VIﻓﺴﻮف ﺗﺤﺘﺎج ﻟﻌﻤﻞ اﻋﺎدة رﺑﻂ هﺬة SubVIﻟﻜﻰ ﺗﺴﻄﻴﻊ ﺗﻨﻔﻴﺬ .VI
واﻋﺎدة اﻟﺮﺑﻂ ﻳﺘﻢ آﺎﻟﺘﺎﻟﻰ
ﻳﻤﻜﻦ اﻟﺒﺤﺚ ﻋﻦ SubVIوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺣﺮوﻓﻬﺎ اﻻوﻟﻰ ﻣﺒﺎﺷﺮة اﺛﻨﺎء ﻣﺸﺎهﺪة ﻧﺎﻓﺬة . VI Hierarchy
اﻟﺪرس اﻟﺨﺎﻣﺲ
Structures
اﻟﻔﻬﺮس
i
39 ..............................................Case Structure اﻻدﺧﺎل و اﻻﺧﺮاج ﻣﻦ و اﻟﻰ
41 .................................................................................................... Dialogs
41 ............................................................................Standard Dialogs-1
42 .......................................................................... One Button Dialog
43 .......................................................................... Two Button Dialog
44 .......................................................................... Two Button Dialog
44 ............................................................................. Express Dialogs-2
44 ....................................................... Display Message Express VI
46 ............................................................... Prompt User Express VI
49 ...................................................................... The Sequence Structure
49 ................................................................... Flat Sequence Structure
49 ........................................................... Stacked Sequence Structure
50 .................................................................. Sequence Structure ادراج
51 ............................................................................... Sequence Local
52 ........................................................................ Sequence Local اﺿﺎﻓﺔ
55 ......................................................................................... Timing اﻟﻤﺆﻗﺘﺎت
55 ......................................................................................... اﻟﺪوا ل اﻻﺳﺎﺳﻴﺔ
55 ................................................................................ Wait (ms) داﻟﺔ.1
56 ....................................................................... Wait Until Next داﻟﺔ.2
57 ..................................................................... Tick Count (ms) داﻟﺔ.3
58 ................................................................ Express Timing Functions
58 .............................................................. Time Delay Express VI .1
58 .......................................................... Elapsed Time Express VI .2
60 ........................................................................................ Formula Node
60 ..................................................................... Formula Node آﻴﻔﻴﺔ ادراج
61 ........................................................... اﺿﺎﻓﺔ ﻣﺘﻐﻴﺮات داﺧﻠﺔ وﻣﺘﻐﻴﺮات ﺧﺎرﺟﺔ
62 ......................................................... Forumla Node آﺘﺎﺑﺔ اﻟﻤﻌﺎدﻻت داﺧﻞ
65 ................................................................................... Expression Node
ii
هﺪف اﻟﺪرس
iii
ﻣﻘﺪﻣﺔ
iv
) Loopsدوال اﻟﺘﻜﺮار(
1
For Loop
ﺗﺴﺘﺨﺪم For Loopﻟﺘﻜﺮار ﺗﻨﻔﻴﺬ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﺑﺪاﺧﻠﻬﺎ ﻋﺪد ﻣﺤﺪد ﻣﻦ اﻟﻤﺮات.
وﻳﺴﻤﻰ اﻟﻜﻮد اﻟﻤﻮﺟﻮد ﺑﺪاﺧﻞ For Loopﺑﺎﺳﻢ .SubDiagram
Iteration Terminalوهﻮ ﻳﺤﺘﻮى ﻋﻠﻰ ﻋﺪد اﻟﻤﺮات اﻟﺘﻰ ﺗﻢ ﺗﻨﻔﻴﺬهﺎ .ﻓﻔﻰ اول ﻣﺮة ﻳﻨﻔﺬ
ﻓﻴﻬﺎ اﻟﻜﻮد ﻳﻜﻮن ﺑﺎﻟﻘﻴﻤﺔ ﺻﻔﺮ و ﻓﻰ اﻟﻤﺮة اﻟﺜﺎﻧﻴﺔ ﻳﻜﻮن ﺑﺎﻟﻘﻴﻤﺔ واﺣﺪ وهﻜﺬا ﺣﺘﻰ ﻳﺼﻞ اﻟﻰ اﻟﻌﺪد
.N-1
ﻓﻬﺬا Terminalﻳﺄﺧﺬ اﻟﻘﻴﻢ ﻣﻦ ﺻﻔﺮ اﻟﻰ . N-1ﺣﻴﺚ Nﻳﺴﺎوى اﻟﻌﺪد اﻟﻤﻮﺻﻞ اﻟﻰ
) Count Termianlﻋﺪد اﻟﻤﺮات اﻟﺘﻰ ﺳﻴﻨﻔﺬ ﻓﻴﻬﺎ اﻟﻜﻮد( .
2
ﻣﻠﺤﻮﻇﺔ :
هﻮ Long Integerﻓﻬﻤﺎ ﻳﺄﺧﺬان ﻗﻴﻢ ﺻﺤﻴﺤﺔ ﻣﺎ ﺑﻴﻦ و اﻟـ Data Typeﻟﻜﻞ ﻣﻦ
ﺻﻔﺮ اﻟﻰ .232-1ﻻﺣﻆ ان ﻟﻮﻧﻬﻤﺎ ازرق.
آﻴﻔﻴﺔ ادراج For Loop
آﻤﺎ ذآﺮﻧﺎ ﺗﻮﺟﺪ For Loopﻓﻰ
Function Palettes>>Programming>>Structures
.ﺛﻢ اﺑﺪأ ﻓﻰ رﺳﻢ For Loopﻓﻰ اﻟﻤﻜﺎن اﺧﺘﺮ For Loopﻟﻴﻈﻬﺮ اﻟﻤﺆﺷﺮ ﺑﻬﺬا اﻟﺸﻜﻞ
اﻟﺬى ﺗﺮﻳﺪﻩ.
3
ﻻﺣﻆ اﻧﻪ :
• ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ اﺑﻌﺎد For Loopﺑﺎﺳﺘﺨﺪام اﻻداة Positioningوذاﻟﻚ ﺑﺘﺤﺮﻳﻜﻬﺎ ﻋﻠﻰ
اﻃﺎر Loopﻟﻴﺼﺒﺢ اﻟﻤﺆﺷﺮ ﻋﻠﻰ ﺷﻜﻞ ﺳﻬﻢ ﻓﻨﻀﻐﻂ ﺑﺎﻟﻤﺆﺷﺮ وﻧﺴﺤﺐ اﻻﻃﺎر ﻓﻰ
اﻻﺗﺠﺎة اﻟﺬى ﻧﺮﻳﺪﻩ.
4
• اﻳﻀﺎ ﻳﻤﻜﻦ ﺗﺤﺮﻳﻚ For Loopو ﻧﻘﻠﻬﺎ ﺑﻮاﺳﻄﺔ .Positioning Tool
• ﻋﻨﺪ ﻧﻘﻞ For Loopﻳﻨﺘﻘﻞ ﻣﻌﺎ ﻣﺎ ﺑﺪاﺧﻠﻬﺎ.
• ﻻﺣﻆ اﻧﻪ اذا ﻗﻤﺖ ﺑﺘﺤﺮﻳﻚ For Loopﻟﺘﻐﻄﻰ ﻋﻠﻰ SubVIاو داﻟﺔ ﺳﻴﻈﻬﺮ ﻇﻞ
ﻟﻬﺬة اﻟﺪاﻟﺔ ﻟﻴﺤﺬرك اﻧﻬﺎ ﻟﻴﺴﺖ داﺧﻞ .For Loop
5
ﺣﺬف : For Loop
• اذا اردت ﺣﺬف For Loopﺑﻤﺎ ﻓﻰ داﺧﻠﻬﺎ اﺧﺘﺮ For Loopواﺿﻐﻂ .Delete
• ﻟﺤﺬف For Loopﻓﻘﻂ واﻻﺑﻘﺎء ﻋﻠﻰ ﻣﺎ ﺑﺪاﺧﻠﻬﺎ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ
اﻃﺎر For Loopوﻧﺨﺘﺎر Remove For Loop
6
: Numeric Conversion
هﻮ Long Integerاى رﻗﻢ ذآﺮﻧﺎ ﻣﻦ ﻗﺒﻞ ان Data Typeﻟﻠـ Count Terminal
ﺻﺤﻴﺢ ﻣﺎ ﺑﻴﻦ اﻟﺼﻔﺮ و .232-1
وﻳﻮﺟﺪ اﻧﻮاع اﺧﺮى ﻣﻦ Data Typeﺑﺎﻟﻨﺴﺒﺔ ﻟﻠـ Controlاو Indicatorاﻟﺮﻗﻤﻴﺔ ﻣﺜﻞ
Double-Precisionو . Single-Precision
ﻓﺎذا ﻗﻤﺖ ﺑﺘﻮﺻﻴﻞ ﺑﻴﻦ Terminals 2ﻣﺨﺘﻠﻔﻴﻴﻦ ﻓﻰ ﻧﻮع Data Typeﻓﺴﻮف ﻳﻘﻮم
LabVIEWﺑﺘﺤﻮﻳﻞ اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﺔ ﺑﻴﻦ اﻟﻨﻮﻋﻴﻦ اﻟﻤﺨﺘﻠﻴﻔﻴﻦ .وﻋﻨﺪﺋﺬ ﻳﻀﻊ LabIVEWﻧﻘﻄﺔ
ﻋﻠﻰ Terminalاﻟﻤﺤﻮل اﻟﻴﻪ وهﺬة اﻟﻨﻘﻄﺔ ﺗﺴﻤﻰ .Coercion dot
آﺬﻟﻚ اذا ﻗﻤﺖ ﺑﺘﻮﺻﻴﻞ Terminalﻟﻪ Data typeﻣﺨﺘﻠﻒ اﻟﻰ Count Terminal
ﻓﺴﻮف ﻳﻘﻮم LabVIEWﺑﻌﻤﻠﻴﺔ اﻟﺘﺤﻮﻳﻞ.
7
وﻟﺘﺠﻨﺐ ذﻟﻚ
-1ﻧﻐﻴﺮ Data Typeاﻟﺨﺎص ﺑﺎل Terminalاﻟﻤﻮﺻﻮل ﺑـ Count Terminal
وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ واﺧﺘﻴﺎر Representationوﻧﺨﺘﺎر .I32
8
9
While Loop
. ﺗﻌﻴﺪ ﺗﻜﺮار ﺗﻨﻔﻴﺬ اﻟﻜﻮد اﻟﺬى ﺑﺪاﺧﻠﻬﺎ ﺣﺘﻰ ﻳﺘﺤﻘﻖ ﺷﺮط ﻣﻌﻴﻦStructure هﻰ ﻋﺒﺎرة ﻋﻦ
: Iteration Terminal-1
For Loop اﻟﻤﻮﺟﻮد ﻓﻰIteration Terminal وهﻮ ﻣﺜﻞ
10
وهﻮ ﻳﺤﺘﻮى ﻋﻠﻰ ﻋﺪد اﻟﻤﺮات اﻟﺘﻰ ﺗﻢ ﺗﻨﻔﻴﺬ ﻓﻴﻬﺎ اﻟﻜﻮد داﺧﻞ .While Loopﻓﻔﻰ اول ﻣﺮة ﻳﻨﻔﺬ
ﻓﻴﻬﺎ اﻟﻜﻮد ﻳﻜﻮن ﺑﺎﻟﻘﻴﻤﺔ ﺻﻔﺮ وﻓﻰ آﻞ ﻣﺮة ﻳﻌﺎد ﻓﻴﻬﺎ ﺗﻨﻔﻴﺬ اﻟﻜﻮد ﻳﺰداد واﺣﺪ.
:Conditional Terminal-2
وهﺬا Terminalﻳﺄﺧﺬ ﻗﻴﻢ True ) Booleanاو . ( Falseوﻳﺘﻢ اﻋﺎدة ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺪاﺧﻞ
While Loopﺣﺘﻰ ﻳﻜﻮن اﻟﺪاﺧﻞ اﻟﻰ هﺬا Terminalاﻣﺎ اﻟﻘﻴﻤﺔ Trueاو Falseوذﻟﻚ
ﻳﺘﻮﻗﻒ ﻋﻠﻰ ﻧﻮع .Conditional Terminal
وﻳﻮﺟﺪ ﻧﻮﻋﺎن ﻟﻬﺬا :Terminal
11
ﻓﻔﻰ آﻞ ﻣﺮة ﻳﻨﻔﺬ ﻣﺎ ﺑﺪاﺧﻞ While Loopﺛﻢ ﻳﺘﻢ ﻓﺤﺺ اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﻬﺬا Terminalﻓﺎذا
آﺎﻧﺖ Trueﻳﻌﺎد ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺪاﺧﻞ While Loopواذا آﺎﻧﺖ اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ Falseﻳﺘﻢ
اﻟﺨﺮوج ﻣﻦ .While Loop
ﻻﺣﻆ اﻧﻪ:
• ﻓﻰ اى ﺣﺎﻟﺔ ﻳﻨﻔﺬ ﻣﺎ ﺑﺪاﺧﻞ While Loopﻣﺮة واﺣﺪة ﻋﻠﻰ اﻻﻗﻞ.
• ﻳﻤﻜﻦ اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ Terminals 2وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ Terminal
واﺧﺘﻴﺎر اﻟﻨﻮع اﻻﺧﺮ.
12
او ﻣﻦ
Function Palettes>>Express>>Execution Control
13
ﺗﺘﻔﻖ While Loopﻣﻊ For Loopﻓﻰ :
-1آﻴﻔﻴﺔ ﺗﺤﺮﻳﻚ Loopوﻧﻘﻠﻬﺎ وﺗﻐﻴﻴﺮ اﺑﻌﺎدهﺎ
-2ﻃﺮﻳﻘﺔ ﺣﺬف Loop
-3ﺧﺎﺻﻴﺔ Auto Grow
14
وﻃﺒﻘﺎ ﻟﻤﻔﻬﻮم Dataflowﻓﺈن اﻟﺒﻴﺎﻧﺎت اﻟﺪاﺧﻠﺔ ﻟﻠـ Loopﺗﺪﺧﻞ اﻟﻰ Loopﻗﺒﻞ ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺪاﺧﻞ
Loopاول ﻣﺮة.وﺗﺨﺮج اﻟﺒﻴﺎﻧﺎت ﻣﻦ Loopﺑﻌﺪ ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺪاﺧﻞ Loopاﺧﺮ ﻣﺮة اى ﺑﻌﺪ
اﻧﺘﻬﺎء ﺗﻜﺮار ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺪاﺧﻞ .Loop
15
Loop وﻣﻮﺻﻞ ﺑـLoop ﺧﺎرجIndicator Terminal •
:اﻣﺜﻠﺔ اﺧﺮى
Conditional Terminal:Stop If True اﻟﻰFalse • ﺗﻮﺻﻴﻞ ﺛﺎﺑﺖ ﻗﻴﻤﺘﻪ
16
Shift RegistersوFedback Node
ﻋﻨﺪﻣﺎ ﺗﺘﻌﺎﻣﻞ Loopsﺳﻮاء For Loopاو While Loopﺳﺘﺠﺪ اﻧﻚ ﻓﻰ ﺣﺎﺟﺔ ﻟﻨﻘﻞ
اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﻤﺮات اﻟﺴﺎﺑﻘﺔ اﻟﺘﻰ ﺗﻢ ﺗﻨﻔﻴﺬ ﻓﻴﻬﺎ ﻣﺎ ﺑﺪاﺧﻞ Loopاﻟﻰ اﻟﻤﺮة اﻟﺘﻰ ﻳﻨﻔﺬ ﻓﻴﻬﺎ ﻣﺎ
ﺑﺪاﺧﻞ Loopاﻻن.
وﻟﻠﺘﻮﺿﻴﺢ ﺳﻮف ﻧﺴﻤﻰ ﺗﻨﻔﻴﺬ ﻣﺎ ﺑﺎﺧﻞ Loopﺑﺎﺳﻢ ﺗﻨﻔﻴﺬة وﺳﻮف ﻧﻌﻄﻴﻬﺎ رﻗﻢ ﻳﺪل ﻋﻠﻰ
ﺗﺮﺗﺒﻴﻬﺎ ﻓﻰ اﻟﺘﻨﻔﻴﺬ ﻓﻤﺜﻼ اول ﻣﺮة ﻳﻨﻔﺬ ﻓﻴﻬﺎ ﻣﺎ ﺑﺪاﺧﻞ Loopﻧﻄﻠﻖ ﻋﻠﻴﻬﺎ ﺗﻨﻔﻴﺬة 1وﺛﺎﻧﻰ ﻣﺮة
ﻧﻄﻠﻖ ﻋﻠﻴﻬﺎ ﺗﻨﻔﻴﺬة 2وهﻜﺬا ﺗﻨﻔﻴﺬ 3وﺗﻨﻔﻴﺬة ... 4اﻟﺦ.
ﻓﻔﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻧﺤﺘﺎج اﻟﻰ ﻧﻘﻞ اﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺗﻨﻔﻴﺬة اﻟﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺘﻰ ﺗﻠﻴﻬﺎ ﻣﺜﻞ ﻧﻘﻞ ﺑﻴﺎﻧﺎت
ﻣﻦ ﺗﻨﻔﻴﺬة 1اﻟﻰ ﺗﻨﻔﻴﺬة 2وهﻜﺬا.
وهﻨﺎك ﻃﺮﻳﻘﺘﻴﻦ ﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺑﻴﺎﻧﺎت ﻣﻦ اﻟﺘﻨﻔﻴﺬات اﻟﺴﺎﺑﻘﺔ هﻤﺎ Shift Registerو
.Feedback Node
17
Shift Register
ﺗﻨﻘﻞ Shift Registerاﻟﺒﻴﺎﻧﺎت ﻣﻦ ﺗﻨﻔﻴﺬة ﻟﻠـ For loopاو While Loopاﻟﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺘﻰ
ﺗﻠﻴﻬﺎ.
. و وﻳﺘﻜﻮن Shift Registerﻣﻦ هﺬﻳﻦ اﻟﺸﻜﻠﻴﻦ
اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﺘﻨﻔﻴﺬة اﻟﺴﺎﺑﻘﺔ اﻟﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺤﺎﻟﻴﺔ.او ﺗﻨﻘﻞ ﺑﻴﺎﻧﺎت ﻣﻦ ﺧﺎرج Loopاﻟﻰ ﺗﻨﻘﻞ
اﻟﺘﻨﻔﻴﺬة اﻻوﻟﻰ.
اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﺘﻨﻔﻴﺬة اﻟﺤﺎﻟﻴﺔ اﻟﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺘﺎﻟﻴﺔ.او ﺗﻨﻘﻞ اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﺧﺮ ﺗﻨﻔﻴﺬة اﻟﻰ وﺗﻨﻘﻞ
ﺧﺎرج .Loop
18
ﻳﻤﻜﻦ اﺿﺎﻓﺔ اآﺜﺮ ﻣﻦ Shift Registerﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ.
ﻳﻤﻜﻦ ان ﻳﻨﻘﻞ Shift Registerاى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت )اى ( Data typeرﻗﻢ او
و Booleanاو ﻧﺺ او ﻣﺼﻔﻮﻓﺔ وﻟﻜﻦ ﻳﺠﺐ ان ﺗﻜﻮن ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺻﻠﻪ ﻟﻠـ
واﺣﺪة.
19
ﻣﺜﺎل ﻋﻠﻰ : Shift Register
ﻧﻔﺬ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﺎﻟﻰ ﺑﺎﺳﺘﺨﺪام Execution Highlighting
20
اﻣﺎ ﺧﺮج Inidcator2ﻓﻰ For Loopاﻟﺜﺎﻧﻴﺔ هﻮ 6وذﻟﻚ ﻻﻧﻨﺎ اﺳﺘﺨﺪﻣﻨﺎ Shift
Registerاﻟﺘﻰ ﺗﻨﻘﻞ ﻧﺘﻴﺠﺔ اﻟﺠﻤﻊ ﺑﻴﻦ اﻟﺘﻨﻔﻴﺬة واﻟﺘﻰ ﺗﻠﻴﻬﺎ.
21
ﻋﻠﻤﻨﺎ ان Shift Registerﺗﺤﺘﻔﻆ ﺑﺎﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻟﺘﻨﻔﻴﺬة اﻟﺴﺎﺑﻘﺔ .
ﻳﻤﻜﻦ اﻳﻀﺎ ان ﺗﺤﺘﻔﻆ Shift Registerﺑﺎﻟﺒﻴﺎﻧﺎت ﻣﻦ ﻋﺪة ﺗﻨﻔﻴﺬات ﺳﺎﺑﻘﺔ .
وذﻟﻚ ﻳﺘﻢ ﺑﺎﺿﺎﻓﺔ Shift Register Terminalsﻋﻠﻰ اﻟﺤﺎﻓﺔ اﻟﻴﺴﺮى ﻟﻠـ Loop
وﻳﺘﻢ اﺿﺎﻓﺔ Shift Register Terminalsﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ Shift Register
واﺧﺘﻴﺎر Add Elementوﻻﺿﺎﻓﺔ Terminalاﺧﺮ ﻧﻜﺮر هﺬة اﻟﻌﻤﻠﻴﺔ.
22
وﻓﻰ هﺬا اﻟﻤﺜﺎل ﻳﻌﺮض ) X(iﻗﻴﻤﺔ iﻓﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺤﺎﻟﻴﺔ وﺗﻌﺮض ) X(i-1و) X(i-2و)X(i-3
ﻗﻴﻢ iﻣﻦ اﻟﺘﻨﻔﻴﺬات اﻟﺴﺎﺑﻘﺔ.
23
اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ : Shift Register
هﻰ ﻗﻴﻢ Shift Registerﻗﺒﻞ اﻟﺪﺧﻮل ﻓﻰ ﺗﻨﻔﻴﺬ .Loop
آﻴﻔﻴﺔ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ : (Initialize Shift Register) Shift Register
ﺗﺴﺘﻄﻴﻊ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ Shift Registerﺑﺮط Constantاو Controlﺑـ
Terminalsاﻟﻤﻮﺟﻮد ﻋﻠﻰ اﻟﻄﺮف اﻻﻳﺴﺮ.
ﻣﺎذا ﻳﺤﺪث اذا ﻟﻢ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ Shift Register؟
ﺳﻮف ﺗﺄﺧﺬ Shift Registerاﻟﻘﻴﻢ اﻻﻓﺘﺮاﺿﻴﺔ اﻟﺨﺎﺻﺔ ﺑﻨﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﻨﻘﻠﻬﺎ Shift
Registerاى ﻣﺜﻼ اذا آﺎﻧﺖ ﺗﻠﻚ اﻟﺒﻴﺎﻧﺎت رﻗﻤﻴﺔ) (Numericﻓﺴﻮف ﺗﻜﻮن اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ هﻰ
ﺻﻔﺮ واذا آﺎﻧﺖ اﻟﺒﻴﺎﻧﺎت ارﻗﺎم ﺛﻨﺎﺋﻴﺔ ) (Booleanﻓﺴﻮف ﺗﻜﻮن اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ هﻰ .False
24
و ﻳﺄﺧﺬ Shift Registerهﺬة اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻗﺒﻞ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻻول ﻣﺮة وﻟﻜﻦ ﺑﻌﺪ اﻧﺘﻬﺎء
اﻟﺒﺮﻧﺎﻣﺞ ﺗﻤﺎﻣﺎ ﻳﺤﺘﻔﻆ Shift Registerﺑﺎﺧﺮ ﻗﻴﻤﻪ ﻟﻪ ﻟﺘﻜﻮن اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ
ﻟﻠﻤﺮة اﻟﺜﺎﻧﻴﺔ.
واﻟﻤﺜﺎل اﻟﺘﺎﻟﻰ ﻳﻮﺿﺢ اﻟﻔﺮق ﺑﻴﻦ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﺔ وﻋﺪم ﺗﺤﺪﻳﺪهﺎ.
ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺠﻴﻦ ﻻول ﻣﺮة ﺳﻮف ﺗﻜﻮن اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓﻰ Result1و Result2آﺎﻟﺘﺎﻟﻰ
وﻟﻜﻦ ﻓﻰ اﻋﺎدة ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻧﻼﺣﻆ اﻧﻪ ﻓﻰ اﻟﺤﺎﻟﺔ اﻻوﻟﻰ اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﺛﺎﺑﺘﺔ وﻟﻢ ﺗﺘﻐﻴﺮ
25
اﻣﺎ ﻓﻰ اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ ﻧﺠﺪ ان Shift Registerاﺣﺘﻔﻆ ﺑﺎﺧﺮ ﻗﻴﻤﺔ ﻟﻪ ﻣﻦ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻻول
ﻣﺮة وهﻰ اﻟﻘﻴﻤﺔ 10و اﺧﺬ هﺬة اﻟﻘﻴﻤﺔ آﻘﻴﻤﺔ اﺑﺘﺪاﺋﻴﺔ ﻓﻰ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻟﻠﻤﺮة اﻟﺜﺎﻧﻴﺔ ﻟﺬﻟﻚ اﻟﻨﺎﺗﺞ
ﺗﻐﻴﺮ ﻣﻦ 10ﻓﻰ اﻟﻤﺮة اﻻوﻟﻰ اﻟﻰ 20ﻓﻰ اﻟﻤﺮة اﻟﺜﺎﻧﻴﺔ.
26
Feedback Nodes
ﺗﺴﺘﺨﺪم Feedback Nodeﻓﻰ While Loopاو For Loopﻋﻨﺪﻣﺎ ﻧﺮﻳﺪ رﺑﻂ ﺑﻴﻦ
ﻣﺨﺮج SubVIاو داﻟﺔ او ﻣﺠﻤﻮﻋﺔ SubVIsودوال اﻟﻰ ﻣﺪﺧﻞ ﻧﻔﺲ اﻟـ SubVIاو اﻟﺪاﻟﺔ او
ﻣﺠﻤﻮﻋﺔ SubVIsواﻟﺪوال.
ﻓﻜﻤﺎ ﻧﻌﻠﻢ ﻣﻦ ﻣﻔﻬﻮم Dataflowﻟﻦ ﻧﺴﺘﻄﻴﻊ وﺻﻞ ﻣﺨﺮج اﻟﻰ ﻣﺪﺧﻞ ﻟﻨﻔﺲ اﻟﺪاﻟﺔ او SubVI
وذﻟﻚ ﻻﻧﻬﺎ ﻟﻦ ﺗﻨﻔﺬ و ﺗﺨﺮج ﺑﻴﺎﻧﺎت ﻋﻠﻰ ﻣﺨﺎرﺟﻬﺎ اﻻ اذا آﺎﻧﺖ اﻟﺒﻴﺎﻧﺎت ﺟﺎهﺰة ﻋﻠﻰ ﻣﺪاﺧﻠﻬﺎ
وهﻮ ﻟﻦ ﻳﺤﺪث ﻻن اﺣﺪ اﻟﻤﺪﺧﻞ ﻣﻮﺻﻞ ﺑﺎﺣﺪ اﻟﻤﺨﺎرج ﻟﻬﺎ.
ﻓﻔﻰ هﺬة اﻟﺤﺎﻟﺔ ﻧﺴﺘﺨﺪم Feedback Nodeﻟﻜﻰ ﻧﺠﻌﻞ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺧﺮﺟﺖ ﻋﻠﻰ اﺣﺪ
اﻟﻤﺨﺎرج ﻟﺪاﻟﺔ او SubVIهﻰ اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻋﻠﻰ اﺣﺪ اﻟﻤﺪاﺧﻞ ﻟﺘﻠﻚ اﻟﺪاﻟﺔ او SubVIﻓﻰ
اﻟﻤﺮة اﻟﺘﺎﻟﻴﺔ اﻟﺘﻰ ﺗﻨﻔﺬ ﻓﻴﻬﺎ هﺬة اﻟﺪاﻟﺔ او .SubVI
وهﻰ ﻣﺜﻞ Shift Registerﺗﺤﺘﻔﻆ ﺑﻘﻴﻤﺘﻬﺎ ﺑﻌﺪ اﻧﺘﻬﺎء اﻟﺘﻨﻔﻴﺬة اﻟﺤﺎﻟﻴﺔ ﻟﺘﻨﻘﻠﻬﺎ اﻟﻰ اﻟﺘﻨﻔﻴﺬة اﻟﺘﺎﻟﻴﺔ.
27
و ﻳﻤﻜﻦ ان ﺗﻨﻘﻞ اى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت.
ﻣﻊ Feedback Nodeهﺬا Terminalﻳﻮﺻﻞ اﻟﻴﻪ اﻟﻘﻴﻤﺔ وﻳﻮﺟﺪ Terminal
اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ .Feedback Node
هﺬة اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﺳﺘﻜﻮن هﻰ ﻗﻴﻤﺔ اﻟﻤﺪﺧﻞ اﻟﻤﻮﺻﻞ اﻟﻴﺔ Feedback Nodeﻓﻰ اول ﻣﺮة
ﺗﻨﻔﺬ ﻓﻴﻬﺎ .Loop
وهﺬا Terminalﻳﻮﺿﻊ ﺗﻠﻘﺎﺋﻴﺎ ﺑﻤﺠﺮد ادارج .Feedback Node
وآﻤﺎ ﺑﺎﻟﺸﻜﻞ ﻳﺤﺪد اﺗﺠﺎﻩ اﻟﺴﻬﻢ اﻟﻤﻮﺟﻮد ﻓﻰ Feedback Nodeﻣﺴﺎر ﺗﺪﻓﻖ اﻟﺒﻴﺎﻧﺎت.
ادراج : Feedback Node
ﻳﺘﻢ ادراج Feedback Nodeﻣﻦ
Function Palette>>Programming>>Structures
28
ﻣﺎذا ﻳﺤﺪث اذا ﻟﻢ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻢ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ Feedback Node؟
اذا ﻗﻤﺖ ﺑﺘﺤﺪﻳﺪ اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ Feedback Nodeﻓﻬﺬة اﻟﻘﻴﻤﺔ ﺳﺘﻜﻮن ﻗﻴﻤﺔ
Feedback Nodeﻗﺒﻞ اﻟﺪﺧﻮل ﻓﻰ اﻟﺘﻨﻔﻴﺬة اﻻوﻟﻰ ﻓﻰ Loopوهﺬا ﺳﻮاء آﺎن ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ
ﻻول ﻣﺮة او ﺛﺎﻧﻰ ﻣﺮة او اى ﻣﺮة.
اﻧﻤﺎ اذا ﻟﻢ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻤﺔ اﻻﻟﺒﺘﺪاﺋﻴﺔ ﻟﻠـ Feedback Nodeﺳﻮف ﻳﺄﺧﺬ Feedback
Nodeاﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﺔ اﻟﺨﺎﺻﺔ ﺑﻨﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﻨﻘﻠﻬﺎ وذﻟﻚ ﻗﺒﻞ اول ﻣﺮة ﺗﻨﻔﺬ ﻓﻴﻬﺎ Loop
وﻟﻜﻦ ﺳﻮف ﻳﺤﺘﻔﻆ Feedback Nodeﺑﺎﺧﺮ ﻗﻴﻤﺔ ﻟﻪ ﺑﻌﺪ اﻧﺘﻬﺎء Loopﻟﺘﻜﻮن ﺗﻠﻚ اﻟﻘﻴﻤﺔ
هﻰ اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻠـ Feedback Nodeﻓﻰ اﻟﻤﺮةاﻟﺘﺎﻟﻴﺔ اﻟﺘﻰ ﺗﻨﻔﺬ ﻓﻴﻬﺎ Loopوهﻜﺬا.
وهﺬا ﻣﻤﺎﺛﻞ ﻟﻤﺎ ﻳﺤﺪث ﻓﻰ .Shift Registers
29
Case Structure
ﻓﻰ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔIf….then…else هﻰ اﺣﺪ اﻟﻄﺮق ﻟﺘﻨﻔﻴﺬ اﻟﺠﻤﻞ اﻟﺸﺮﻃﻴﺔ وهﻰ ﺗﻌﺎدل
.اﻻﺧﺮى
ﻣﻦCase Structure وﻳﺘﻢ ادراج
Function Palette>>Programming>>Structures
او ﻣﻦ
Function Palette>>Express >>Execution Control
30
ﻳﺴﻤﻰ . Selector Terminalوآﻞ وﺗﺘﻜﻮن Case Structureﻣﻦ ﻋﺪة ﺣﺎﻻت وﻣﺪﺧﻞ
ﺣﺎﻟﺔ ﻳﻜﺘﺐ ﻓﻴﻬﺎ آﻮد هﺬا اﻟﻜﻮد ﻳﺴﻤﻰ .Subdiagramوﻋﻨﺪ ﺗﻨﻔﻴﺬ Case Structureﻳﺘﻢ
ﺗﻨﻔﻴﺬ ﺣﺎﻟﺔ واﺣﺪة وﺗﺤﺪد اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﻳﺄﺧﺬهﺎ اﻟﻤﺪﺧﻞ اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻨﻔﺬ.
ﻋﺎدة ﻣﺎ ﺗﺤﺘﻮى Case Structureﻋﻠﻰ ﻋﺪة ﺣﺎﻻت وﻟﻜﻦ ﻳﻌﺮض ﻣﺤﺘﻮى ﺣﺎﻟﺔ واﺣﺪة
اﻟﺴﻬﻢ اﻻﻳﻤﻦ وﻟﻌﺮض ﻣﺤﺘﻮﻳﺎت اﻟﺤﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ ﻧﺴﺘﺨﺪم
اﻟﺴﻬﻢ اﻻﻳﺴﺮ. و ﻟﻌﺮض ﻣﺤﺘﻮﻳﺎت اﻟﺤﺎﻟﺔ اﻟﺴﺎﺑﻘﺔ ﻧﺴﺘﺨﺪم
و اﺧﺘﻴﺎر اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﻳﺮاد ﻋﺮﺿﻬﺎ. وﻳﻤﻜﻦ اﻟﺘﻨﻘﻞ اﻟﻰ اى ﺣﺎﻟﺔ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ اﻟﺴﻬﻢ
اوﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻃﺎر Caseواﺧﺘﻴﺎر Show Caseواﺧﺘﻴﺎر اﻟﺤﺎﻟﺔ
اﻟﺘﻰ ﺗﺮﻳﺪهﺎ
31
32
آﻴﻔﻴﺔ ﺗﺤﺪﻳﺪ اﻟﺤﺎﻻت ﻣﻊ اﻻﻧﻮاع اﻟﻤﺨﺘﻠﻔﺔ ﻟﻠﻘﻴﻢ اﻟﻤﻮﺻﻠﺔ ﻟﻠـ :Selector Terminal
• اذا اآﺎن دﺧﻞ اﻟﻤﺪﺧﻞ ﻣﻦ اﻟﻨﻮع Booleanﻓﺎن هﻨﺎك ﺣﺎﻟﺘﻴﻦ هﻤﺎ Trueاو False
• اذا آﺎن دﺧﻞ اﻟﻤﺪﺧﻞ ﻣﻦ اﻟﻨﻮع ) Numericرﻗﻤﻰ( ﻓﻴﻤﻜﻦ ان ﻳﻮﺟﺪ ﻋﺪد ﻧﻬﺎﺋﻰ ﻣﻦ اﻟﻘﻴﻢ.
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﺤﺘﻮى Case Structureﻋﻠﻰ ﺣﺎﻟﺘﻴﻦ ﻓﻘﻂ وﻳﻤﻜﻦ ان ﺗﻀﻴﻒ اﻟﻴﻬﺎ اﻟﺤﺎﻻت
اﻟﺘﻰ ﺗﺮﻳﺪهﺎ.
ﻳﻤﻜﻦ ان ﺗﻜﻮن ﻟﻠﺤﺎﻟﺔ اآﺜﺮ ﻣﻦ ﻗﻴﻤﺔ وﻟﻌﻤﻞ ذﻟﻚ ﺗﻜﺘﺐ اﻟﻘﻴﻢ ﺑﻴﻨﻬﺎ ﻓﺎﺻﻠﺔ .
33
آﻤﺎ ﻳﻤﻜﻦ ان ﺗﻜﻮن اﻟﺤﺎﻟﺔ ﻟﻤﺪى ﻣﻦ اﻟﻘﻴﻢ وﻟﻌﻤﻞ ذﻟﻚ ﻧﺴﺘﺨﺪم اﻟﻨﻘﻄﺘﻴﻦ ..ﻟﻠﺘﻌﺒﻴﺮ ﻋﻦ اﻟﻤﺪى
ﻓﻤﺜﻼ 2..20ﺗﻌﻨﻰ ان هﺬة اﻟﺤﺎﻟﺔ ﻟﻜﻞ اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ ﻣﻦ 2اﻟﻰ .20
و 3..ﺗﻌﻨﻰ ان اﻟﺤﺎﻟﺔ ﻟﻜﻞ اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ اﻟﺘﻰ ﺗﺴﺎوى اواآﺒﺮ ﻣﻦ .3
34
ﻣﺜﺎل اذا آﺎﻧﺖ اﻟﺤﺎﻻت اﻟﻤﻮﺟﻮدة هﻰ ﻟﻠﻘﻴﻢ 1و2و 3ﻓﻘﻂ ﻓﻤﺎ هﻰ اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻨﻔﺬ اذا آﺎن ﻗﻴﻤﺔ
اﻟﺪﺧﻞ 100ﻣﺜﻼ.
ﺳﺘﻨﻔﺬ اﻟﺤﺎﻟﺔ اﻻﻓﺘﺮاﺿﻴﺔ )(Default Case
و اﻟﺤﺎﻟﺔ اﻻﻓﺘﺮاﺿﻴﺔ ﻳﻈﻬﺮ ﺑﺠﻮار اﻟﻘﻴﻤﺔ اﻟﻤﺨﺼﺼﺔ ﻟﻬﺎ آﻠﻤﺔ . Default
35
• اذا آﺎن دﺧﻞ اﻟﻤﺪﺧﻞ ﻣﻦ اﻟﻨﻮع ) Stringﻧﺺ( ﻓﺘﻜﺘﺐ ﻗﻴﻢ اﻟﺤﺎﻻت ﺑﻴﻦ ﻋﻼﻣﺘﻴﻦ ﺗﻨﺼﻴﺺ واذا
ﻟﻢ ﺗﻀﻊ اﻟﻌﻼﻣﺘﻴﻦ ﻓﺴﻮف ﻳﻘﻮم LabVIEWﺑﻮﺿﻌﻬﻢ ﺗﻠﻘﺎﺋﻴﺎ .
36
ﻻﺣﻆ اﻧﻪ:
¾ اذا ﺗﻢ ﺗﻮﺻﻴﻞ رﻗﻢ ﻣﻦ اﻟﻨﻮع Floating-Pointﻓﺴﻮف ﻳﻘﻮم LabVEWﺑﺘﺤﻮﻳﻞ
اﻟﻘﻴﻤﺔ اﻟﻰ رﻗﻢ ﺻﺤﻴﺢ ﻣﻦ اﻟﻨﻮع I32ﺛﻢ ﻳﺨﺘﺎر اﻟﺤﺎﻟﺔ ﻋﻠﻰ اﺳﺎس اﻟﺮﻗﻢ اﻟﻤﺤﻮل.
¾ ﻳﻤﻜﻦ ﻧﻘﻞ ﻣﻜﺎن اﻟﻤﺪﺧﻞ ) (Case Selectorاﻟﻰ اى ﻣﻜﺎن ﻋﻠﻰ اﻃﺎر Case
.Structure
37
اﺿﺎﻓﺔ وﺣﺬف ﺣﺎﻻت :
ﻳﻤﻜﻦ اﺿﺎﻓﺔ ﺣﺎﻟﺔ ﺟﺪﻳﺪة او ﺣﺬف ﺣﺎﻟﺔ او ﻋﻤﻞ ﻧﺴﺨﺔ ﻣﻦ ﺣﺎﻟﺔ ﻣﻮﺟﻮدة و ﺧﻴﺎرات اﺧﺮى وذﻟﻚ
ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻃﺎر .Case Structure
وﻋﻨﺪ اﺧﺘﻴﺎر اﻋﺎدة ﺗﺮﺗﻴﺐ اﻟﺤﺎﻻت ﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﺗﺮﺗﻴﺐ اﻟﺤﺎﻻت
38
اﻻدﺧﺎل و اﻻﺧﺮاج ﻣﻦ و اﻟﻰ : Case Structure
ذآﺮﻧﺎ ان هﻨﺎك اﻟﻤﺪﺧﻞ ) ( Selector Terminalوﻗﻴﻤﺘﻪ هﻰ اﻟﺘﻰ ﺗﺤﺪد اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻨﻔﺬ.
ﻳﻤﻜﻦ اﻳﻀﺎ ان ﻧﺪﺧﻞ اى ﻋﺪد ﻣﻦ اﻟﻤﺪﺧﻼت اﻟﻰ اﻟﺤﺎﻻت او ﻧﺨﺮج اى ﻋﺪد ﻣﻦ اﻟﻤﺨﺮﺟﺎت و
ذﻟﻚ ﻣﻦ ﺧﻼل . Tunnels
39
ﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﻋﻨﺪ ﻣﺤﺎوﻟﻪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﺗﻈﻬﺮ ﻟﻨﺎ هﺬة اﻟﺮﺳﺎﻟﺔ
40
Dialogs
آﻴﻒ ﺗﺠﻌﻞ اﻟﺒﺮﻧﺎﻣﺞ ﻳﺘﻔﺎﻋﻞ ﻣﻊ اﻟﻤﺴﺘﺨﺪم ؟
ﺳﻮف ﻧﺘﻮﻗﻒ ﻗﻠﻴﻼ ﻟﻠﺘﻌﺮف ﻋﻦ آﻴﻒ اﺧﺮاج رﺳﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺪم اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.وهﺬة اﻟﺮﺳﺎﺋﻞ
ﻳﻤﻜﻦ ان ﺗﺤﺘﻮى ﻋﻠﻰ اآﺜﺮ ﻣﻦ زرار ﻣﺜﻞ زرار Okاو .Cancel
وﻳﺤﺘﻮى LabVIEWﻋﻠﻰ ﺑﻌﺾ اﻻدوات اﻟﺘﻰ ﺗﺘﻴﺢ اﻇﻬﺎر رﺳﺎﺋﻞ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
وﻳﻤﻜﻦ ادراج هﺬة اﻻدوات ﻣﻦ
Function Palette>>Programming>>Dialog & User Interface
41
وهﻰ دوال ﻻﻇﻬﺎر رﺳﺎﺋﻞ ﺑﻬﺎ ﻧﺺ وهﺬة اﻟﺮﺳﺎﺋﻞ ﻗﺪ ﻳﻮﺟﺪ ﺑﻬﺎ زرار او زرارﻳﻦ او ﺛﻼث
زراﻳﺮ وذﻟﻚ ﺣﺴﺐ اﻟﺪاﻟﺔ اﻟﻤﺴﺘﺨﺪﻣﺔ.
وﻣﺪﺧﻼت هﺬة اﻟﺪوال ﺗﻜﻮن ﻋﺒﺎرة ﻋﻦ :
• ﻧﺺ اﻟﺮﺳﺎﻟﺔ اﻟﺘﻰ ﺗﺮﻳﺪ اﻇﻬﺎرهﺎ ﻟﻠﻤﺴﺘﺨﺪم اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ .
• اﺳﻤﺎء اﻟﺰراﻳﺮ اﻟﺘﻰ ﺳﺘﻮﺟﺪ ﻓﻰ اﻟﺮﺳﺎﻟﺔ ﻣﺜﻞ Cancelاو .Ok
اﻣﺎ اﻟﻤﺨﺮﺟﺎت ﻓﺘﺤﺪد اى زرار ﻗﺪ ﺿﻐﻂ ﻋﻠﻴﻪ اﻟﻤﺴﺘﺨﺪم ﺣﺘﻰ ﻳﺘﻢ ﻋﻠﻰ اﺳﺎﺳﻪ ﺗﺤﺪﻳﺪ ﻣﺴﺎر ﺗﻨﻔﻴﺬ
اﻟﺒﺮﻧﺎﻣﺞ.
ﻣﺜﺎل
42
Two Button Dialog
وهﻰ ﻻﻇﻬﺎر رﺳﺎﻟﺔ ذات زرارﻳﻦ ﻋﺎدة ﻳﻜﻮﻧﺎن زرارى OKو .Cancel
وﻳﻮﺟﺪ ﻟﻬﺬة اﻟﺪاﻟﺔ ﺛﻼث ﻣﺪاﺧﻞ :
• ﻣﺪﺧﻞ ﻟﻨﺺ اﻟﺮﺳﺎﻟﺔ
• ﻣﺪﺧﻞ ﻻﺳﻢ اﻟﺰرار اﻻول وهﺬا زرار Trueﻻن اﻟﺪاﻟﺔ ﺳﺘﺨﺮج اﻟﻘﻴﻤﺔ Trueاذا
ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم هﺬا اﻟﺰرار.
واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﺳﻴﻜﻮن اﺳﻢ اﻟﺰرار . OK
• ﻣﺪﺧﻞ ﻻﺳﻢ اﻟﺰرار اﻟﺜﺎﻧﻰ وﻳﺴﻤﻰ زرار Falseﻻن اﻟﺪاﻟﺔ ﺳﺘﺨﺮج اﻟﻘﻴﻤﺔ Falseاذا
ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم هﺬا اﻟﺰرار.
واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﺳﻴﻜﻮن اﺳﻢ اﻟﺰرار .Cancel
ﻣﺜﺎل
43
Two Button Dialog
ﻻﻇﻬﺎر رﺳﺎﻟﺔ ذات ﺛﻼث زراﻳﺮ ﻋﺎدة Yesو Noو .Cancel
وﻳﻮﺟﺪ ﻟﻬﺬة اﻟﺪاﻟﺔ ﻋﺪة ﻣﺪاﺧﻞ وﻟﻜﻦ اهﻢ هﺬة اﻟﻤﺪاﺧﻞ آﻤﺎ ﻓﻰ اﻟﺪاﻟﺘﻴﻦ اﻟﺴﺎﺑﻘﺘﻴﻦ:
• ﻣﺪﺧﻞ ﻧﺺ اﻟﺮﺳﺎﻟﺔ
• ﻣﺪﺧﻞ ﻻﺳﻢ اﻟﺰرار اﻻول وﺳﻴﻈﻬﺮ هﺬا اﻟﺰرار ﻓﻰ ﻳﺴﺎر اﻟﺮﺳﺎﻟﺔ واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا
اﻟﻤﺪﺧﻞ ﺳﻴﻜﻮن اﺳﻢ اﻟﺰرار . Yes
• ﻣﺪﺧﻞ ﻻﺳﻢ اﻟﺰرار اﻟﺜﺎﻧﻰ وﺳﻴﻈﻬﺮ هﺬا اﻟﺰرار ﻓﻰ وﺳﻂ اﻟﺮﺳﺎﻟﺔ واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا
اﻟﻤﺪﺧﻞ ﺳﻴﻜﻮن اﺳﻢ اﻟﺰرار . NO
• ﻣﺪﺧﻞ ﻻﺳﻢ اﻟﺰرار اﻟﺜﺎﻟﺚ وﺳﻴﻈﻬﺮ هﺬا اﻟﺰرار ﻓﻰ ﻳﻤﻴﻦ اﻟﺮﺳﺎﻟﺔ واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا
اﻟﻤﺪﺧﻞ ﺳﻴﻜﻮن اﺳﻢ اﻟﺰرار . Cancel
وﻳﻮﺟﺪ ﻟﻬﺬة اﻟﺪاﻟﺔ ﻣﺨﺮج واﺣﺪ ﻳﺤﺪد اى زرار ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻴﻪ.
وﻗﻴﻤﺔ هﺬا اﻟﻤﺨﺮج ﺳﺘﻜﻮن ﺑﺎﻟﻘﻴﻤﺔ :
0اذا ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم اﻟﺰرار اﻻول.
1اذا ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم اﻟﺰرار اﻟﺜﺎﻧﻰ.
2اذا ﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم اﻟﺰرار اﻟﺜﺎﻟﺚ.
3اذا اﻏﻠﻖ اﻟﻤﺴﺘﺨﺪم اﻟﺮﺳﺎﻟﺔ دون اﻟﻀﻐﻂ ﻋﻠﻰ اى ﻣﻦ اﻟﺰراﻳﺮ.
44
هﺬة Express VIﺗﺸﺒﺔ اﻟﺪوال اﻻﺳﺎﺳﻴﺔ .One and Two Button Dialogs
ﺑﻤﺠﺮد ادراج Express VIﻓﻰ Block Diagramﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻓﻴﻬﺎ ﺧﺎﺋﺺ
اﻟﺮﺳﺎﻟﺔ اﻟﺘﻰ ﻧﺮﻳﺪهﺎ
وﺑﻌﺪ ادراج هﺬة Express VIﻳﻤﻜﻦ ان ﻧﻌﻴﺪ ﻓﺘﺢ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ
ExpressVIﺿﻐﻄﺘﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻴﻦ او ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ ﺑﺎﻟﺰر اﻻﻳﻤﻦ و اﺧﺘﻴﺎر .Properties
45
وﻳﻮﺟﺪ ﻟﻬﺬة Express VIﻣﺪﺧﻞ ﻳﺴﻤﻰ Enabledوهﻮ ﻟﺘﻔﻌﻴﻞ او ﻋﺪم ﺗﻔﻌﻴﻞ اﻇﻬﺎر اﻟﺮﺳﺎﻟﺔ
ﻓﺎذا آﺎن آﺎﻧﺖ اﻟﻘﻴﻤﺔ اﻟﻤﻮﺻﻠﺔ ﻟﻬﺬا اﻟﻤﺪﺧﻞ :
Trueﺳﻮف ﻳﺘﻢ اﻇﻬﺎر اﻟﺮﺳﺎﻟﺔ ﻋﻨﺪ ﺗﻨﻔﻴﺬ .Express VI
Falseﻟﻦ ﻳﺘﻢ اﻇﻬﺎر اﻟﺮﺳﺎﻟﺔ ﻋﻨﺪ ﺗﻨﻔﻴﺬ .Express VI
وهﺬا ﻟﻠﺘﺤﻜﻢ ﻓﻰ اﻇﻬﺎر او ﻋﺪم اﻇﻬﺎر اﻟﺮﺳﺎﻟﺔ ﻣﻦ داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ.
وﻳﻮﺟﺪ ﻟﻬﺬة Express VIﻣﺨﺮج ﻗﻴﻤﺘﻪ ﺗﺘﻮﻗﻒ ﻋﻠﻰ اﻟﺰرار اﻟﺬى ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻴﻪ ﻣﻦ ﻗﺒﻞ
اﻟﻤﺴﺘﺨﺪم ﻋﻨﺪ اﻇﻬﺎر اﻟﺮﺳﺎﻟﺔ.
ﻓﻔﻰ ﺣﺎﻟﺔ اذا آﺎﻧﺖ اﻟﺮﺳﺎﻟﺔ ﺗﺤﺘﻮى ﻋﻠﻰ زرار واﺣﺪ ﻓﺎن هﺬا اﻟﻤﺨﺮج ﻗﻴﻤﺘﻪ Trueداﺋﻤﺎ.
اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ اذا آﺎﻧﺖ اﻟﺮﺳﺎﻟﺔ ﺗﺤﺘﻮى ﻋﻠﻰ زرارﻳﻦ ﻓﺴﺘﻜﻮن ﻗﻴﻤﺘﻪ :
Trueاذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰرار اﻻول.
Falseاذا ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰرار اﻟﺜﺎﻧﻰ.
وهﺬا ﻳﻤﺎﺛﻞ اﻟﺪاﻟﺘﻴﻦ One Button Dialogو Two Button Dialog
46
وﺑﻤﺠﺮد ادراج هﺬة Express VIﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ﻟﺘﺤﺪﻳﺪ ﺧﺼﺎﺋﺺ اﻟﺮﺳﺎﻟﺔ.
ﺷﻜﻞ اﻟﺮﺳﺎﻟﺔ
47
ﺷﻜﻞ اﻳﻘﻮﻧﺔ Express VIﺑﻌﺪ ﺗﺤﺪﻳﺪ ﺧﺼﺎﺋﺼﻬﺎ
48
The Sequence Structure
ﺗﺤﺘﻮى Sequence Structureﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻآﻮاد آﻞ آﻮد ﻳﺴﻤﻰ SubDiagram
ﺗﻨﻔﺬ آﻠﻬﺎ ﺑﺘﺮﺗﻴﺐ ﺗﻮاﺟﺪهﺎ ﻓﻰ .Sequence Structureوﻳﻮﺿﻊ آﻞ آﻮد ﻓﻰ اﻃﺎر .ﺗﺮﺗﻴﺐ
هﺬا اﻻﻃﺎر هﻮ ﺗﺮﺗﻴﺐ ﺗﻨﻔﻴﺬ اﻟﻜﻮد.
وﻳﻮﺟﺪ ﻧﻮﻋﺎن ﻣﻦ Sequence Structureهﻤﺎ Flat Sequence Structureو
.Stacked Sequence Structure
وهﻤﺎ ﻳﺨﺘﻠﻔﺎن ﻓﻘﻂ ﻓﻰ ﻃﺮﻳﻘﺔ ﻋﺮض اﻻآﻮاد ). (SubDiagrams
Flat Sequence Structure
ﺗﻌﺮض اﻻﻃﺎرات او اﻻآﻮاد ﺑﺠﻮار ﺑﻌﻀﻬﺎ وﺗﻨﻔﺬ اﻻآﻮاد اﻟﻤﻮﺟﺪة داﺧﻞ اﻻﻃﺎرت ﺑﺎﻟﺘﺮﺗﻴﺐ ﻣﻦ
اﻟﻴﺴﺎر اﻟﻰ اﻟﻴﻤﻴﻦ.
49
: Sequence Structure ادراج
ﻣﻦSequence Structure ﻳﺘﻢ ادراج
Function Palette>>Programming>>Structures
Add Frame وﻧﻀﻐﻂStructure وﻻﺿﺎﻓﺔ اﻃﺎر ﺟﺪﻳﺪ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ اﻃﺎر
Add Frame Before اوAfter
50
: Sequence Local
ﻳﺘﻢ ﻧﻘﻞ اﻟﺒﻴﺎﻧﺎت ﺑﻴﻦ اﻻﻃﺎرات ﻓﻰ Flat Sequence Structureﺑﺎﻟﺮﺑﻂ ﺑﻴﻦ اﻻآﻮاد ﻋﻦ ﻃﺮﻳﻖ
) Tunnelsرﺑﻂ ﻣﺒﺎﺷﺮ(.
51
اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ Stacked Sequence Structureﻓﻴﺴﺘﺨﺪم Sequence Localﻟﻨﻘﻞ اﻟﺒﻴﺎﻧﺎت
ﺑﻴﻦ اﻻﻃﺎرات اﻟﻤﺨﺘﻠﻔﺔ.
52
ﻧﻮﺻﻞ ﻗﻴﻤﺔ اﻟﻰ Sequence Localﻓﻰ اﺣﺪ اﻻﻃﺎرت وﻳﺘﻢ ﻗﺮاءة هﺬة اﻟﻘﻴﻤﺔ ﻓﻰ اﻻﻃﺎرات
اﻻﺧﺮى.
ﻣﻠﺤﻮﻇﺔ :
ﻓﻰ اى وﻗﺖ اﺛﻨﺎء ﺗﺼﻤﻴﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻦ اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ Flat and Stacked Sequence
.Structures
53
54
اﻟﻤﺆﻗﺘﺎت Timing
ﻟﻠﻤﺆﻗﺘﺎت اهﻤﻴﺔ آﺒﻴﺮة ﻓﻰ LabVIEWﻓﻬﻰ ﺗﺴﺘﺨﺪم ﻟﻘﻴﺎس اﻟﺰﻣﻦ وﻋﻤﻞ ﺗﺰاﻣﻦ ﺑﻴﻦ اﻟﻤﻬﺎم اﻟﻤﺨﺘﻠﻔﺔ و
ﻋﻤﻞ ﺗﺄﺧﻴﺮ ﻓﻰ ﻋﻤﻞ Loopsﻟﻜﻰ ﺗﻌﻤﻞ Loopsﺑﻤﻌﺪل ﻣﻨﺎﺳﺐ ﺣﺘﻰ ﻻ ﺗﺴﺘﺤﻮز ﻋﻠﻰ اﻟﺴﺮﻋﺔ
اﻟﻜﻠﻴﺔ ﻟﻠﻤﻌﺎﻟﺞ.
وﻳﻮﺟﺪ ﻧﻮﻋﺎن ﻣﻦ اﻟﻤﺆﻗﺘﺎت :اﻟﺪوال اﻻﺳﺎﺳﻴﺔ وExpress Timing VIs
وﻳﻤﻜﻦ ادراج ﺟﻤﻴﻊ اﻟﻤﺆﻗﺘﺎت ﻣﻦ
Function Palette >> Programming>> Timing
55
.2داﻟﺔ : Wait Until Next
ﺗﺠﻌﻞ هﺬة اﻟﺪاﻟﺔ VIﺗﻨﺘﻈﺮ ﺣﺘﻰ ﺗﻜﻮن اﻟﺴﺎﻋﺔ اﻟﺪاﺧﻠﻴﺔ ﻟﻨﻈﺎم اﻟﺘﺸﻐﻴﻞ )وﻳﻨﺪوز ﻣﺜﻼ( ﺗﺴﺎوى
ﻣﻀﺎﻋﻔﺎت اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﻠﺪاﻟﺔ) (millisecond multipleوﺑﻌﺪ ذﻟﻚ ﻳﺴﺘﻤﺮ ﺗﻨﻔﻴﺬ .VI
وﺗﻜﻮن اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﻠﺪاﻟﺔ ﺑﺎﻟﻤﻠﻠﻰ ﺛﺎﻧﻴﺔ.
هﻰ .10 ﻟﻮ ان اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﺪاﻟﺔ Wait until Next ms Multiple
وﻗﻴﻤﺔ ﺳﺎﻋﺔ او ﻣﺆﻗﺖ اﻟﻨﻈﺎم هﻰ ﻣﺜﻼ .112
8ﻣﻴﻠﻠﻰ ﺛﺎﻧﻴﺔ ﺣﺘﻰ ﺗﻜﻮن اﻟﺴﺎﻋﺔ اﻟﺪاﺧﻠﻴﺔ ﻟﻠﻨﻈﺎم 120وهﻮ ﻳﻌﻨﻰ ﻓﺴﻮف ﺗﻨﺘﻈﺮ اﻟﺪاﻟﺔ
ﻣﻀﺎﻋﻔﺎت ) 10اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﻠﺪاﻟﺔ(.
وﻓﻰ اﻟﻤﺮة اﻟﺘﺎﻟﻴﺔ ﺳﻮف ﺗﻨﺘﻈﺮ اﻟﻰ ان ﺗﻜﻮن اﻟﺴﺎﻋﺔ 130اﻳﻀﺎ ﻣﻀﺎﻋﻔﺎت .10وهﻜﺬا
ﻻﺣﻆ اﻧﻪ ﺣﺪث ﺗﺰاﻣﻦ ﻣﻊ ﺳﺎﻋﺔ اﻟﻨﻈﺎم .
ﻟﻮ ان اﻟﻘﻴﻤﺔ اﻟﺪاﺧﻠﺔ ﻟﻬﺎ هﻰ .10 اﻣﺎ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠﺪاﻟﺔ )Wait (ms
وﻗﻴﻤﺔ ﺳﺎﻋﺔ او ﻣﺆﻗﺖ اﻟﻨﻈﺎم هﻰ ﻣﺜﻼ .112
56
10ﻣﻴﻠﻠﻰ ﺛﺎﻧﻴﺔ ﻟﻜﻰ ﺗﻜﻮن اﻟﺴﺎﻋﺔ اﻟﺪاﺧﻠﻴﺔ ﻟﻠﻨﻈﺎم .122اى اﻧﻬﺎ اﻧﺘﻈﺮت ﻓﺴﻮف ﺗﻨﺘﻈﺮ اﻟﺪاﻟﺔ
10ﻣﻠﻠﻰ ﺛﺎﻧﻴﺔ ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﻗﻴﻤﺔ ﺳﺎﻋﺔ اﻟﻨﻈﺎم .وهﻜﺬا ﺳﺘﻨﺘﻈﺮ ﻓﻰ آﻞ ﻣﺮة ﺗﻨﻔﺬ 10ﻣﻠﻠﻰ ﺛﺎﻧﻴﺔ
ﺑﻐﺾ اﻟﻨﻈﺮ ﻋﻦ ﻗﻴﻤﺔ ﺳﺎﻋﺔ اﻟﻨﻈﺎم.
ﻓﻰ ﺟﻌﻞ ﻣﺎ ﺑﺪاﺧﻞ Loopsﻳﻨﻔﺬ ﻓﻰ ازﻣﻨﺔ ﻣﺤﺪدة .آﻤﺎ اﻧﻬﺎ ﺗﺴﺘﺨﺪم ﻓﻰ ﻟﺬﻟﻚ ﺗﺴﺘﺨﺪم اﻟﺪاﻟﺔ
ﻋﻤﻞ ﺗﺰاﻣﻦ ﺑﻴﻦ اﻻﺣﺪاث.
ﻻﺣﻆ اﻧﻪ ﻋﻨﺪﻣﺎ ﺗﺴﺘﺨﺪم هﺬة اﻟﺪاﻟﺔ ﻓﻰ Loopﻓﺄﻧﻬﺎ ﻓﻰ اول ﻣﺮة ﺗﻨﻔﺬ ﻓﻴﻬﺎ ﻗﺪ ﺗﻨﺘﻈﺮ اﻗﻞ ﻣﻦ اﻟﻘﻴﻤﺔ
اﻟﺪاﺧﻠﺔ اﻟﻴﻬﺎ آﻤﺎ ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ.
ﺗﺴﺘﺨﺪم اﻟﺪاﻟﺘﻴﻦ اﻟﺴﺎﺑﻘﺘﻴﻦ ﺑﻜﺜﺮة ﻓﻰ Loopsوذﻟﻚ ﺣﺘﻰ ﻻ ﺗﺴﺘﺤﻮز Loopﻋﻠﻰ ﺳﺮﻋﺔ اﻟﻤﻌﺎﻟﺞ.
ﻓﺘﻘﻮم هﺬة اﻟﺪوال ﺑﻌﻤﻞ اﻟﺘﺎﺧﻴﺮ اﻟﻼزم ﻟﻌﻤﻞ اﻟﻤﻬﺎم اﻻﺧﺮى ﻣﺜﻞ ﺗﻔﺎﻋﻞ ﻋﻨﺎﺻﺮ Front Panelﻣﻊ
اﻟﻤﺴﺘﺨﺪم.
ﺗﺴﺘﺨﺪم هﺬة اﻟﺪاﻟﺔ ﻓﻰ ﺣﺴﺎب اﻟﻮﻗﺖ اﻟﻤﻨﻘﻀﻰ ﻓﻰ ﺗﻨﻔﻴﺬ ﺟﺰء ﻣﻌﻴﻦ ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ.
57
: Express Timing Functions
ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟﺪوال اﻻﺳﺎﺳﻴﺔ اﻟﻤﻮﺟﻮدة ﻓﻰ ﺑﻴﺌﺔ LabVIEWﺗﻮﺟﺪ Express Timing VIs
وهﻤﺎ Time Delayو .Elapsed Time
وﻳﻤﻜﻦ ﺗﻮﺻﻴﻞ ﻗﻴﻤﺔ اﻟﺘﺄﺧﻴﺮ اﻟﻰ Express VIوهﺬة اﻟﻘﻴﻤﺔ ﺳﻮف ﺗﺤﻞ ﻣﺤﻞ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺣﺪدﻧﺎ
ﺑﻮاﺳﻄﺔ اﻟﻨﺎﻓﺬة اﻟﺴﺎﺑﻘﺔ.
58
وﺗﺤﺪد اﻟﻘﻴﻤﺔ Time Has Elapsedهﻠﻰ اﻧﻘﻀﻰ اﻟﻮﻗﺖ ام ﻻ
ﻓﺎذا آﺎﻧﺖ Trueﻓﺈن اﻟﻮﻗﺖ اﻟﻤﺤﺪد ﻗﺪ اﻧﻘﻀﻰ
اﻣﺎ اذا اآﺎﻧﺖ Falseﻓﺈن اﻟﻮﻗﺖ ﻟﻢ ﻳﻨﻘﻀﻰ ﺑﻌﺪ.
59
Formula Node
ﺗﺴﺘﺨﺪم Formula Nodeﻟﻜﺘﺎﺑﺔ اﻟﻤﻌﺎدﻻت اﻟﺮﻳﺎﺿﻴﺔ .
ﻣﺜﻼ ﻟﺘﻄﺒﻴﻖ هﺬة اﻟﻤﻌﺎدﻟﺔ Y=X2+X+1ﺑﻮاﺳﻄﺔ اﻟﺪوال اﻻﺳﺎﺳﻴﺔ ﻓﻰ LabVIEWﻓﺴﻮف
ﺗﻜﻮن ﺑﻬﺬا اﻟﺸﻜﻞ
60
اﺿﺎﻓﺔ ﻣﺘﻐﻴﺮات داﺧﻠﺔ وﻣﺘﻐﻴﺮات ﺧﺎرﺟﺔ:
ﻳﻤﻜﻦ اﺿﺎﻓﺔ اى ﻋﺪد ﻣﻦ اﻟﻤﺘﻐﻴﺮات اﻟﺪاﺧﻠﺔ اواﻟﺨﺎرﺟﺔ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس
واﺧﺘﻴﺎر
Add Inputﻻﺿﺎﻓﺔ ﻣﺘﻐﻴﺮ داﺧﻞ
Add Outputﻻﺿﺎﻓﺔ ﻣﺘﻐﻴﺮ ﺧﺎرج
ﻣﻠﺤﻮﻇﺎت
• ﻻ ﻳﻤﻜﻦ ان ﻳﻜﻮن هﻨﺎك ﻣﺘﻐﻴﺮﻳﻦ داﺧﻠﻴﻦ او ﺧﺎرﺟﻴﻦ ﺑﻨﻔﺲ اﻻﺳﻢ .
• ﻳﻤﻜﻦ ان ﻳﻜﻮن ﻣﺘﻐﻴﺮ ﺧﺎرج واﺧﺮ داﺧﻞ ﺑﻨﻔﺲ اﻻﺳﻢ .
• اﻟﻤﺘﻐﻴﺮات اﻟﺨﺎرﺟﺔ ﻳﻜﻮن اﻃﺎرهﺎ اآﺜﺮ ﺳﻤﻜﺎ ﻣﻦ اﻟﻤﺘﻐﻴﺮات اﻟﺪاﺧﻠﺔ .
61
آﺘﺎﺑﺔ اﻟﻤﻌﺎدﻻت داﺧﻞ : Forumla Node
ﺗﻜﺘﺐ اﻟﻤﻌﺎدﻻت ﻓﻰ داﺧﻞ Fromula Nodeﺑﻄﺮﻳﻘﺔ ﻣﺸﺎﺑﻬﺔ ﻟﻜﺘﺎﺑﺔ اﻟﺠﻤﻞ ﻓﻰ ﻟﻐﺔ .C
ﺗﻜﺘﺐ اﻟﻤﻌﺎدﻟﺔ ﺑﺎﺳﺘﺨﺪام اﻟﺪوال و اﺳﻤﺎء اﻟﻤﺘﻐﻴﺮات.
ﻳﻮﺿﻊ ﺑﻌﺪ آﻞ ﻣﻌﺎدﻟﺔ اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ ;
ﻳﻤﻜﻦ ان ﺗﻮﺟﺪ اآﺜﺮ ﻣﻦ ﻣﻦ ﻣﻌﺎدﻟﺔ ﻓﻰ .Formula Node
اى ﻣﺘﻐﻴﺮ ﻳﺴﺘﺨﺪم ﻓﻰ اﻟﻤﻌﺎدﻻت ﻳﺠﺐ ان ﻳﻮﺿﻊ آﻤﺘﻐﻴﺮ ﺧﺎرج او داﺧﻞ ﻋﻠﻰ اﻃﺮاف
.Formula Node
ﻣﻠﺤﻮﻇﺔ :
ﻟﻴﺲ ﺣﺘﻤﻴﺎ رﺑﻂ اﻟﻤﺘﻐﻴﺮات اﻟﺨﺎرﺟﺔ ﺑﺨﺎرج Nodeﻓﻬﻨﺎك ﻣﺜﻼ اﻟﻤﺘﻐﻴﺮات اﻟﻮﺳﻴﻄﺔ اﻟﺘﻰ
ﺗﺴﺘﺨﺪم ﺑﻴﻦ اﻟﻤﻌﺎدﻻت.
62
ﻣﻠﺤﻮﻇﺔ :
ﻟﻴﺲ هﻨﺎ ﻋﺪد ﻣﺤﺪد ﻟﻌﺪد اﻟﻤﺘﻐﻴﺮات او ﻋﺪد اﻟﻤﻌﺎدﻻت اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻰ .Formula Node
ﻳﻤﻜﻦ ﺗﻜﺒﻴﺮ Fromula Nodeﻟﺘﺴﻊ اى ﻋﺪد ﻣﻦ اﻟﻤﻌﺎدﻻت وذﻟﻚ ﺑﺎﺳﺘﺨﺪام Positioning
Tool
آﻤﺎ ﻳﻤﻜﻦ اﻇﻬﺎر ﺷﺮﻳﻂ اﻧﺰﻻق راﺳﻰ داﺧﻞ Nodeﻟﻜﺘﺎﺑﺔ اآﺒﺮ ﻋﺪد ﻣﻤﻜﻦ ﻣﻦ اﻟﻤﻌﺎدﻻت.
63
واﻟﺘﻰ ﺗﻌﻨﻰ :اذا آﺎﻧﺖ ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ xاآﺒﺮ ﻣﻦ او ﺗﺴﺎوى 0ﻓﺎﺟﻌﻞ ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ yﺗﺴﺎوى
اﻟﺠﺬر اﻟﺘﺮﺑﻴﻌﻰ ﻟﻘﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ . x
واذا آﺎﻧﺖ ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ xﻏﻴﺮ ذﻟﻚ اى ﻟﻴﺴﺖ اآﺒﺮ وﻻ ﺗﺴﺎوى ) 0اى اﺻﻐﺮ ﻣﻦ (0ﻓﺎﺟﻌﻞ
ﻗﻴﻤﺔ اﻟﻤﺘﻐﻴﺮ yﺗﺴﺎوى اﻟﺮﻗﻢ ) -99دﻻﻟﺔ ﻋﻠﻰ ان اﻟﻤﺘﻐﻴﺮ xﻟﻴﺲ ﻟﻪ ﺟﺬر ﺗﺮﺑﻴﻌﻰ( .
اوﺑﻬﺬا اﻟﺸﻜﻞ
64
Expression Node
هﻰ ﺻﻮرة ﻣﺒﺴﻄﺔ ﻣﻦ .Formula Nodeﻓﻬﻰ ﺗﺤﺘﻮى ﻋﻠﻰ ﻋﺒﺎرة رﻳﺎﺿﻴﺔ واﺣﺪة وﻣﺪﺧﻞ
واﺣﺪ وﻣﺨﺮج واﺣﺪ.
65
66
ﺗﻢ ﺑﺤﻤﺪ اﷲ ﺗﻌﺎﻟﻰ اﻻﻧﺘﻬﺎء ﻣﻦ اﻟﺪرس
اﻟﻰ اﻟﻘﺎء ﺑﺎذن اﷲ ﺗﻌﺎﻟﻰ ﻓﻰ اﻟﺪرس اﻟﺴﺎدس
LabVIEW دروس ﺗﻌﻠﻴﻢ
اﻟﺪرس اﻟﺴﺎدس
Arrays and Clusters
اﻟﻔﻬﺮس
اﻟﻔﻬﺮس i.........................................................................................................
i
37 ............................................................. Compound Arithmetic Function
43 ................................................................................................. Clusters
ii
هﺪف اﻟﺪرس
iii
ﻣﻘﺪﻣﺔ
ﻓﻰ هﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ ﻧﻮﻋﻴﻦ ﻣﺮآﺒﻴﻦ ﻣﻦ اﻧﻮاع اﻟﺒﻴﺎﻧﺎت ) ( Data Typeوهﻤﺎ
اﻟﻤﺼﻔﻮﻓﺎت ) (Arraysو.Clusters
ووﺟﻮد هﺬان اﻟﻨﻮﻋﺎن ﻳﺴﻬﻞ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت واﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ.
وﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ اﺳﺘﺨﺪاﻣﺎت ﻋﺪﻳﺪة ﻟﻬﻤﺎ واﻳﻀﺎ اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﻬﻤﺎ ﻓﻰ ﺑﻴﺌﺔ .LabVIEW
واﺧﻴﺮا ﺳﻮف ﻧﺘﻌﺮف آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺧﻄﺎء اﻟﺘﻰ ﺗﺤﺪث اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ وﺑﻌﺾ اﻟﻤﻬﺎرات
اﻟﻤﻬﻤﺔ ﻓﻰ اﻟﺒﺮﻣﺠﺔ.
iv
اﻟﻤﺼﻔﻮﻓﺎت )(Arrays
1
اﻟﻤﺼﻔﻮﻓﺔ دات اﻟﺒﻌﺪﻳﻦ ﻣﺜﻞ اﻟﺠﺪول ﻟﻬﺎ ﻋﺪة ﺻﻔﻮف واﻋﻤﺪة.
ﻣﺜﻞ درﺟﺎت اﻟﻄﻼب ﻓﻰ اآﺜﺮ ﻣﻦ ﻣﺎدة ﻓﻰ ﺷﻬﺮ واﺣﺪ.
وهﺬا Indexﻳﺎﺧﺬ اﻟﻘﻴﻢ ﻣﻦ ﺻﻔﺮ اﻟﻰ N-1ﺣﻴﺚ Nهﻮ ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ.
ﻣﺜﺎل :ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﺑﻬﺎ 10ﻋﻨﺎﺻﺮ
2
وﻟﻠﻤﺼﻔﻮﻓﺎت اهﻤﻴﺔ آﺒﺮى ﻓﻤﺜﻼ اى اﺷﺎرة ﻟﻜﻰ ﻳﺘﻢ رﺳﻤﻬﺎ او ﺗﺨﺰﻳﻨﻬﺎ ﻓﻰ ﻣﻠﻒ ﺗﻤﺜﻞ ﻋﻠﻰ هﻴﺌﺔ ﻣﺼﻔﻮﻓﺔ ،آﻞ
ﻋﻨﺼﺮ ﺑﻬﺎ ﻳﻤﺜﻞ ﻧﻘﻄﺔ ﻓﻰ هﺬة اﻻﺷﺎرة ،اﻳﻀﺎ ﻟﻠﻤﺼﻔﻮﻓﺎت اهﻤﻴﺔ ﻓﻰ ﺗﺨﺰﻳﻦ اﻟﻘﻴﻢ اﻟﺘﻰ ﺗﺨﺮج ﻣﻦ ،Loopﻓﻜﻞ
ﺗﻨﻔﻴﺬة ﻟـ Loopﺗﺨﺮج ﻋﻨﺼﺮ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ آﻤﺎ ﺳﻨﻮﺿﺢ.
-2ﻳﺘﻢ ادراج Controlاو Indicatorاﻟﺬى ﻧﺮﻳﺪﻩ داﺧﻞ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ ﻟﺘﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ﻣﻨﻪ.
3
ﻻﺣﻆ ان ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻳﻤﻜﻦ ان ﻳﻜﻮﻧﻮا Controlsاو Indicatorsوﻟﻴﺲ ﺧﻠﻴﻂ ﻣﻨﻬﻢ.
4
ﻋﻨﺪ ادراج اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ وﻗﺒﻞ وﺿﻊ اى Controlاو Indicatorداﺧﻠﻪ ﻳﻈﻬﺮ ﻟﻪ Terminalﻓﻰ
Block Diagramوﻳﻜﻮن ﻟﻮن هﺬا Terminalاﺳﻮد وﻳﻮﺟﺪ ﺑﻪ ﻗﻮﺳﻴﻦ ﻓﺎرﻏﻴﻦ ﺣﺘﻰ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟـ Data
typeاﻟﺨﺎص ﺑﻪ وﻳﺘﻢ ذﻟﻚ ﺑﻮﺿﻊ Controlاو Indicatorاو ﺛﺎﺑﺖ داﺧﻞ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ.
وﻋﻨﺪ وﺿﻊ Controlاو Indicatorاو ﺛﺎﺑﺖ داﺧﻞ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ ﻳﺘﻐﻴﺮ ﻟﻮن Terminalاﻟﻰ ﻟﻮن Data
Typeاﻟﺨﺎص ﺑﺎﻟﻌﻨﺼﺮ اﻟﺬى وﺿﻊ ﻓﻴﻬﺎ .آﻤﺎ ﻳﻮﺿﻊ ﺑﻴﻦ اﻟﻘﻮﺳﻴﻦ ﻓﻰ Terminalرﻣﺰ هﺬا . Data Type
ﺗﺬآﺮ ان Terminalﻳﻤﻜﻦ ان ﻳﻜﻮن ﻋﻠﻰ ﺷﻜﻞ اﻳﻘﻮﻧﺔ او ﻳﻜﻮن ﻋﻠﻰ اﻟﺸﻜﻞ اﻟﻘﺪﻳﻢ وﻟﻠﺘﻐﻴﻴﺮ ﺑﻴﻨﻬﻤﺎ ﻧﻀﻐﻂ ﺑﺎﻟﺰر
اﻻﻳﻤﻦ ﻟﻠﻤﺎوس وﻧﺨﺘﺎر او ﻧﻠﻐﻰ اﺧﺘﻴﺎر View as iconوهﺬا ﺗﻐﻴﻴﺮ ﻓﻰ اﻟﺸﻜﻞ ﻓﻘﻂ وﻟﻴﺲ ﻟﻪ اى ﺗﺄﺛﻴﺮ اﺧﺮ.
5
Positioningﻋﻠﻰ ﺣﺎﻓﺔ اﻟﻌﻨﺼﺮ داﺧﻞ ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ اﺑﻌﺎد اﻟﻌﻨﺼﺮ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ وذﻟﻚ ﺑﺘﺤﺮﻳﻚ اﻻداة
ﻓﻨﻀﻐﻂ وﻧﺴﺤﺐ اﻟﻰ اﻻﺑﻌﺎد اﻟﺘﻰ ﻧﺮﻳﺪهﺎ . اﻟﻤﺼﻔﻮﻓﺔ ﺣﺘﻰ ﻳﻈﻬﺮ اﻟﻤﺆﺷﺮ ﻋﻠﻰ هﻴﺌﺔ ﻣﺆﺷﺮﺑﺴﻬﻤﻴﻦ او
وﻳﻜﻦ ﺗﻐﻴﻴﺮ ﻋﺪد اﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ ﺗﻈﻬﺮ داﺧﻞ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ وذﻟﻚ ﺑﺘﻐﻴﻴﺮ اﺑﻌﺎد اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ وذﻟﻚ ﺑﺘﺤﺮﻳﻚ
ﻓﻨﻀﻐﻂ Positioningﻋﻠﻰ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ ﺣﺘﻰ ﻳﻜﻮن اﻟﻤﺆﺷﺮ ﻋﻠﻰ هﻴﺌﺔ ﻣﺆﺷﺮ ﺑﺴﻬﻤﻴﻦ او اﻻداة
وﻧﺴﺤﺐ اﻟﻰ اﻻﺑﻌﺎد اﻟﺘﻰ ﻧﺮﻳﺪهﺎ.
6
ﻳﻈﻬﺮ اﻟﻌﻨﺼﺮ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻌﺘﻤﺎ اذا ﻟﻢ ﺗﺤﺪد ﻟﻪ ﻗﻴﻤﺔ وﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻗﻴﻤﺔ اﻟﻌﻨﺎﺻﺮ ﺑﻜﺘﺎﺑﺔ اﻟﻘﻴﻤﺔ ﻣﺒﺎﺷﺮة ﻓﻰ
اﻟﻌﻨﺼﺮ او اﺳﺘﺨﺪام اﻻﺳﻬﻢ ﻓﻰ ﺣﺎﻟﺔ اذا آﺎن اﻟﻌﻨﺼﺮ Numeric Controlاو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻌﻨﺼﺮ اذا آﺎن
Booleanاو ﺗﺤﺪد ﻗﻴﻢ اﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ داﺧﻞ اﻟﺒﺮﻧﺎﻣﺞ اﺛﻨﺎء اﻟﺘﻨﻔﻴﺬ.
7
و ﺗﻌﺘﺒﺮ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ هﻰ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ ﺗﻢ ﺗﺤﺪﻳﺪ ﻗﻴﻢ ﻟﻬﺎ )ﻻﺣﻆ ان اﻟﺼﻔﺮ ﻗﻴﻤﺔ(.
ﺗﺪل ﻗﻴﻤﺔ ) Indexاﻟﺪﻟﻴﻞ( اﻟﺨﺎص ﺑﺎﻟﻤﺼﻔﻮﻓﺔ ﻋﻠﻰ رﻗﻢ اول ﻋﻨﺼﺮ ﻳﻈﻬﺮ ﻓﻰ اﻃﺎر اﻟﻌﻨﺼﺮ .
واذا ﻗﻤﺖ ﺑﺘﻐﻴﻴﺮ ﻗﻴﻤﺔ اﻟﺪﻟﻴﻞ ﻳﻈﻬﺮ ﻟﻚ اﻟﻌﻨﺼﺮ اﻟﺬى رﻗﻤﺔ ﻳﺴﺎوى ﻗﻴﻤﺔ .Index
8
اﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻣﻦ Constantsﻓﻰ : Block Diagram
ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ﻳﺘﻢ اﻧﺸﺎء ﻣﺼﻔﻮﻓﺔ ﻣﻦ Constantsﻓﻰ Block Diagramﻋﻠﻰ ﺧﻄﻮﺗﻴﻦ:
-1ﻧﺪرج اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ ) (Array Constantﻣﻦ
Function Palette>>Programming >>Array
9
ﺣﺬف ﺟﻤﻴﻊ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ :
ﻳﻤﻜﻦ ﺣﺬف ﺟﻤﻴﻊ ﻗﻴﻢ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ وﺟﻌﻠﻬﺎ ﻓﺎرﻏﺔ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ
) Indexاﻟﺪﻟﻴﻞ( – وﻟﻴﺲ ﻋﻠﻰ اﻟﻌﻨﺼﺮ -واﺧﺘﻴﺎر
Data Operation >>Empty Array
10
اﺿﺎﻓﺔ او ﺣﺬف ﻋﻨﺼﺮ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ :
ﻳﻤﻜﻦ اﺿﺎﻓﺔ ﻋﻨﺼﺮ او ﺣﺬف ﻋﻨﺼﺮ ﻣﻦ ﻣﺼﻔﻮﻓﺔ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻌﻨﺼﺮ داﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ
و اﺧﺘﻴﺎر
Data Operation >>Insert Element Before
ﻻﺿﺎﻓﺔ ﻋﻨﺼﺮ
او
Data Operation >>Delete Element
ﻟﺤﺬف ﻋﻨﺼﺮ
11
12
اﻇﻬﺎر ) Scrollbarﺷﺮﻳﻂ اﻧﺰﻻق( ﻟﻠﻤﺼﻔﻮﻓﺔ :
ﻋﻠﻤﻨﺎ اﻧﻪ ﺑﺘﻐﻴﻴﺮ ﻗﻤﻴﺔ Indexﺗﺘﻐﻴﺮ اﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ ﺗﻈﻬﺮ ﻣﻦ ﺧﻼل اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ ﻓﺘﺴﺘﻄﻴﻊ ﻣﺸﺎهﺪﺗﻬﺎ .وهﻨﺎك
ﻃﺮﻳﻘﺔ اﺧﺮى ﻟﺘﺸﺎهﺪ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ وهﻰ اﻇﻬﺎر Scrollbarﻟﻠﻤﺼﻔﻮﻓﺔ وهﺬا Scrollbarﻗﺪ ﻳﻜﻮن اﻓﻘﻴﺎ
) (Horizontalاو رأﺳﻴﺎ ) (Verticalوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Indexواﺧﺘﻴﺎر
Visible Items>>Vertical Scrollbar
او
Visible Items>> Horizontal Scrollbar
13
اﺳﺘﺨﺪام ﺧﺎﺻﻴﺔ : Auto-Indexing
ﺧﺎﺻﻴﺔ Auto-Indexingهﻰ ان While Loopاو For Loopﺗﻘﻮم ﺑﺘﺨﺰﻳﻦ ﻗﻴﻢ ﻋﻠﻰ اﻃﺎرهﺎ ﻓﻰ
ﻣﺼﻔﻮﻓﺔ ﻓﻜﻞ ﻣﺮة ﺗﻨﻔﺬ ﻓﻴﻬﺎ Loopﻳﺘﻢ اﺿﺎﻓﺔ ﻗﻴﻤﺔ اﻟﻰ اﻟﻤﺼﻔﻮﻓﺔ وﺗﺨﺮج هﺬة اﻟﻤﺼﻔﻮﻓﺔ اﻟﻰ ﺧﺎرج Loopﺑﻌﺪ
اﻧﺘﻬﺎء ﻋﻤﻞ Loopﻣﺒﺎﺷﺮة.
واذا آﺎﻧﺖ هﺬة اﻟﺨﺎﺻﻴﺔ ﻏﻴﺮ ﻣﻔﻌﻠﺔ ﺗﺨﺮج اﺧﺮ ﻗﻴﻤﺔ ﻓﻘﻂ ﻣﻦ Loopﺑﻌﺪ اﻧﺘﻬﺎء ﻋﻤﻠﻬﺎ.
وهﺬة اﻟﺨﺎﺻﻴﺔ ﻣﻔﻌﻠﺔ ﺗﻠﻘﺎﺋﻴﺎ ﻣﻊ For Loopوﻳﻤﻜﻦ ﺗﻌﻄﻴﻠﻬﺎ.
وﻟﻜﻦ هﻰ ﻣﻌﻄﻠﺔ ﺗﻠﻘﺎﺋﻴﺎ ﻣﻊ While Loopوﻳﻤﻜﻦ ﺗﻔﻌﻠﻴﻠﻬﺎ.
ﻣﺜﺎل :
اﺳﺘﺨﺪام For Loopﻻﺧﺮاج ﻣﺼﻔﻮﻓﺔ ﺑﻬﺎ 5ﻋﻨﺎﺻﺮ آﻞ ﻋﻨﺼﺮ ﺑﻪ رﻗﻢ ﻋﺸﻮاﺋﻰ
14
ﻳﻤﻜﻦ اﻟﻐﺎء ﺗﻔﻌﻴﻞ Auto Indexingﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ Tunnelواﺧﺘﻴﺎر . Disable Indexing
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﺨﺮج ﻓﻘﻂ اﺧﺮ ﻗﻴﻤﺔ ﻟﺪاﻟﺔ اﻟﺮﻗﻢ اﻟﻌﺸﻮاﺋﻰ وهﻰ ﻗﻴﻤﺔ وﺣﻴﺪة ) ( Scalarو ﻟﻴﺴﺖ ﻣﺼﻔﻮﻓﺔ.
15
ﻻﺣﻆ ان اﻟﺮاﺑﻂ اﺻﺒﺢ ﻣﻘﻄﻮﻋﺎ ﻻﻧﻪ ﻳﺼﻞ ﺑﻴﻦ ﻧﻮﻋﻴﻦ ﻣﺨﺘﻠﻔﻴﻦ )ﻗﻴﻤﺔ وﺣﻴﺪة وﻣﺼﻔﻮﻓﺔ( وﻟﻠﺘﻐﻠﺐ ﻋﻠﻰ هﺬا اﻟﺨﻄﺄ
وﺟﻌﻞ اﻟﺮاﺑﻂ ﻏﻴﺮ ﻣﻘﻄﻮع ﻧﺠﻌﻞ اداة اﻻﻇﻬﺎر ﻋﺒﺎرة ﻋﻦ Numeric Indicatorﺑﺪﻻ ﻣﻦ ﻣﺼﻔﻮﻓﺔ.
ﺗﺴﺘﺨﺪم اﻳﻀﺎ ﺧﺎﺻﻴﺔ Auto Indexingﻓﻰ ﺣﺎﻟﺔ ادﺧﺎل ﻗﻴﻢ ﻋﻨﺎﺻﺮ ﻣﺼﻔﻮﻓﺔ اﻟﻰ For Loopو While
.Loop
ﻓﻰ ﺣﺎﻟﺔ وﺻﻞ ﻣﺼﻔﻮﻓﺔ اﻟﻰ دﺧﻞ For Loopﻣﺜﻼ ﻣﻊ ﺗﻔﻌﻴﻞ .Auto Indexingﻓﺴﻮف ﻳﺪﺧﻞ ﻗﻴﻤﺔ اﻟﻌﻨﺼﺮ
اﻻول ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ اﻟﻰ داﺧﻞ Loopﻣﻊ اول ﺗﻨﻔﻴﺬة .ﺛﻢ ﻳﺪﺧﻞ ﻗﻴﻤﺔ اﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻰ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ اﻟﻰ داﺧﻞ
Loopﻣﻊ اﻟﺘﻨﻔﻴﺬة اﻟﺜﺎﻧﻴﺔ .وهﻜﺬا
اى ان ﻓﻰ ﺣﺎﻟﺔ Auto Indexingﻻ ﺗﺪﺧﻞ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ آﻠﻬﺎ ﻣﺮة واﺣﺪة واﻧﻤﺎ ﻳﺪﺧﻞ ﻋﻨﺼﺮ ﻋﻨﺼﺮ ﻣﻊ
آﻞ ﺗﻨﻔﻴﺬة.وﻳﺘﻢ اﻟﺘﻌﺎﻣﻞ ﻣﻊ هﺬة اﻟﻌﻨﺎﺻﺮ داﺧﻞ Loopآﺄﻧﻬﺎ ﻗﻴﻢ وﺣﻴﺪة.
16
اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ ﺗﻌﻄﻴﻞ ﺧﺎﺻﻴﺔ Auto Indexingﻓﺴﻮف ﺗﺪﺧﻞ آﻞ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ آﻜﻞ ﻣﻊ اول ﺗﻨﻔﻴﺬة ﻓﻘﻂ ﻟﻴﺘﻢ
اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ آﻤﺼﻔﻮﻓﺔ داﺧﻞ .Loop
اﺳﺘﺨﺪام ﺧﺎﺻﻴﺔ Auto Indexingﻟﺘﺤﺪﻳﺪ ﻋﺪد ﻣﺮات ﺗﻜﺮار ﺗﻨﻔﻴﺬ : For Loop
اذا ﺗﻢ ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ اﻟﻰ داﺧﻞ For Loopو ﺧﺎﺻﻴﺔ Auto Indexingﻣﻔﻌﻠﺔ ﻓﺴﻮف ﻳﻜﻮن ﻋﺪد ﻣﺮات
ﺗﻜﺮار ﺗﻨﻔﻴﺬ For Loopﻳﺴﺎوى ﺳﻌﺔ هﺬة اﻟﻤﺼﻔﻮﻓﺔ )ﻋﺪد اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ( .وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ
.Terminal ﻻداﻋﻰ ﻟﺘﻮﺻﻴﻞ اى ﻗﻴﻤﺔ ﻟـ
17
Terminalواﻳﻀﺎ ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ اﻟﻰ دﺧﻞ For Loopﻣﻊ ﺗﻔﻌﻴﻞ ﺧﺎﺻﻴﺔ اذا ﺗﻢ ﺗﻮﺻﻴﻞ ﻗﻴﻤﺔ اﻟﻰ اﻟـ
Auto Indexingﻓﺴﻮف ﻳﺘﻢ ﺗﺤﺪﻳﺪ ﻋﺪد ﻣﺮات ﺗﻨﻔﻴﺬ For Loopﺑﺎﺻﻐﺮ اﻟﻘﻴﻤﻴﺘﻴﻦ )اﻟﻘﻴﻤﺔ اﻟﻤﻮﺻﻠﺔ ﻟـ
وﺳﻌﺔ اﻟﻤﺼﻔﻮﻓﺔ(.
ﻓﺴﻮف ﻳﻜﻮن ﻋﺪد ﻣﺮات ﺗﻨﻔﻴﺬ For Loopﻳﺴﺎوى ﻓﺎذا آﺎﻧﺖ ﺳﻌﺔ اﻟﻤﺼﻔﻮﻓﺔ اﺻﻐﺮ ﻣﻦ اﻟﻘﻴﻤﺔ اﻟﻤﻮﺻﻠﺔ ﻟـ
ﺳﻌﺔ اﻟﻤﺼﻔﻮﻓﺔ.
اﺻﻐﺮ ﻣﻦ ﺳﻌﺔ اﻟﻤﺼﻔﻮﻓﺔ ﻓﺴﻮف ﻳﻜﻮن ﻋﺪد ﻣﺮات ﺗﻨﻔﻴﺬ For Loopﻳﺴﺎوى واذا آﺎﻧﺖ اﻟﻘﻴﻤﺔ اﻟﻤﻮﺻﻠﺔ ﻟـ
. اﻟﻘﻴﻤﺔ اﻟﻤﻮﺻﻠﺔ اﻟﻰ
ﻣﺜﺎل :
18
اﻟﻤﺼﻔﻮﻓﺎت ذات ﺑﻌﺪﻳﻦ :
وهﻰ ﺗﻤﺎﺛﻞ اﻟﺠﺪول ﺣﻴﺚ ﺗﺨﺰن اﻟﻌﻨﺎﺻﺮ ﻋﻠﻰ هﻴﺌﺔ ﺻﻔﻮف واﻋﻤﺪة.
وهﺬة اﻟﻤﺼﻔﻮﻓﺎت ﻳﺤﺪد ﻓﻴﻬﺎ اﻟﻌﻨﺼﺮ ﺑﻌﺪد ) Index 2دﻟﻴﻠﻴﻦ( .
Indexﻟﺘﺤﺪﻳﺪ رﻗﻢ اﻟﻌﻤﻮد و Indexﻟﺘﺤﺪﻳﺪ رﻗﻢ اﻟﺼﻒ.
وآﻞ ﻣﻦ Indexاﻟﻌﻤﻮد و Indexاﻟﺼﻒ ﻳﺒﺪأ ﺑﺎﻟﺮﻗﻢ ﺻﻔﺮ.
19
آﻴﻔﻴﺔ ﺗﻜﻮن ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ :
ﻧﻘﻮم ﺑﻌﻤﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﺛﻢ ﻧﻀﻐﻂ ﻋﻠﻰ Indexﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس وﻧﺨﺘﺎر Add Dimension
20
Positioningﻋﻠﻰ اﻃﺎر اﻟﻤﺼﻔﻮﻓﺔ وﻳﻤﻜﻦ ﻋﺮض ﻋﺪد اآﺒﺮ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺘﺤﺮﻳﻚ اﻻداة
ﻓﻨﻀﻐﻂ وﻧﺤﺮك اﻻﻃﺎر ﻓﻰ اﺣﺪ اﻻﺗﺠﺎهﺎت اﻟﺮأﺳﻴﺔ او اﻻﻓﻘﻴﺔ او ﺣﺘﻰ ﺗﺘﺤﻮل اﻟﻰ اﻟﺴﻬﻢ ذو اﺗﺠﺎهﻴﻦ
واﻋﺎدة ﻋﻤﻞ ذﻟﻚ ﻓﻰ اﻻﺗﺠﺎﻩ اﻻﺧﺮ.
وﻧﻼﺣﻆ اﻧﻪ ﻋﻨﺪ ﺗﻜﻮﻳﻦ اﻟﻤﺼﻔﻮﻓﺔ ﺗﻜﻮن ﻓﺎرﻏﺔ وﻧﺴﻄﻴﻊ آﺘﺎﺑﺔ اﻟﻘﻴﻢ اﻟﺘﻰ ﻧﺮﻳﺪهﺎ ﻓﻴﻬﺎ ﻣﺒﺎﺷﺮة.
وﻳﻤﻜﻦ ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ ان ﻧﻘﻮم ﺑﺤﺬف ﺑﻌﺪ ﻣﻦ ﻣﺼﻔﻮﻓﺔ ﻟﻬﺎ اآﺜﺮ ﻣﻦ ﺑﻌﺪ .وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ
Indexاﻟﻤﺼﻔﻮﻓﺔ واﺧﺘﻴﺎر .Remove Dimension
21
آﻴﻔﻴﺔ ﺗﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﺑﺎﺳﺘﺨﺪام : For Loop
رأﻳﻨﺎ آﻴﻒ ﻳﺘﻢ اﺳﺘﺨﺪام For Loopﻟﻌﻤﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ.وﺑﺎﺳﺘﺨﺪام ﻋﺪد - For Loop 2ﺑﺤﻴﺖ
ﺗﻜﻮن واﺣﺪة داﺧﻞ اﻻﺧﺮى -وﺗﻔﻌﻴﻞ ﺧﺎﺻﻴﺔ Auto Indexingﻳﻤﻜﻦ ﺗﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﺑﻬﺎ ﻗﻴﻢ.
و ﺗﻜﻮن For Loopاﻟﺪاﺧﻠﻴﺔ اﻟﺼﻔﻮف وﺗﻘﻮم For Loopاﻟﺨﺎرﺟﻴﺔ ﺑﺘﺨﺰﻳﻦ هﺬة اﻟﺼﻔﻮف ﻓﻮق ﺑﻌﻀﺎ ﻟﺘﻜﻮﻳﻦ
ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ.
22
23
اﻟﺪول اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺼﻔﻮﻓﺎت :
ﺗﻮﺟﺪ دوال آﺜﻴﺮة ﻓﻰ LabVIEWﺧﺎﺻﺔ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﺼﻔﻮﻓﺎت.
وﺗﻮﺟﺪ هﺬة اﻟﺪوال ﻓﻰ
Function Palette>>Programming>>Array
24
ﺗﺬآﺮة :اﻟﺘﺮﻗﻴﻢ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺎت ﻳﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ ﻓﺎﻟﻌﻨﺼﺮ اﻻول ﺗﺮﻗﻴﻤﻪ (Index=0) 0واﻟﻌﻨﺼﺮ اﻟﺜﺎﻧﻰ ﺗﺮﻗﻴﻤﻪ
(Index=1) 1وهﻜﺬا.
25
اﻣﺜﻠﺔ
26
داﻟﺔ : Array Size
اﻣﺜﻠﺔ
27
داﻟﺔ : Build Array
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺎﺿﺎﻓﺔ ﻋﻨﺎﺻﺮ ﻟﻠﻤﺼﻔﻮﻓﺔ او ﺑﺠﻤﻊ ﺑﻴﻦ ﻣﺼﻔﻮﻓﺎت او ﻋﻨﺎﺻﺮ ﻟﺘﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ اآﺒﺮ.
او ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ واﺧﺘﻴﺎر Add Input
وﻳﻤﻜﻦ ان ﻳﻮﺻﻞ اﻟﻤﺪﺧﻞ اﻟﻰ ﻋﻨﺼﺮ او ﻣﺼﻔﻮﻓﺔ ذات اى ﺑﻌﺪ وﻳﻌﺘﻤﺪ ﺧﺮج اﻟﺪاﻟﺔ ﻋﻠﻰ ﻧﻮﻋﻴﺔ اﻟﻤﺪاﺧﻞ وﻋﻠﻰ
ﺧﺎﺻﻴﺔ Concatenateوﻳﻤﻜﻦ ﺗﻘﺴﻴﻢ ﺣﺎﻻت ﺗﻨﻔﻴﺬ هﺬة اﻟﺪاﻟﺔ اﻟﻰ ﺛﻼث ﺣﺎﻻت :
اوﻻ :ﺗﻮﺻﻴﻞ ﻋﻨﺎﺻﺮذات ﻗﻴﻢ وﺣﻴﺪة اﻟﻰ ﻣﺪاﺧﻞ اﻟﺪاﻟﺔ.
ﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﺨﺮج اﻟﺪاﻟﺔ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﻣﻜﻮﻧﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ اﻟﺪاﺧﻠﺔ وهﺬة اﻟﻌﻨﺎﺻﺮ ﻟﻬﺎ ﻧﻔﺲ اﻟﺘﺮﺗﻴﺐ
ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ.
28
ﺛﺎﻧﻴﺎ :ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺎت ذات اﺑﻌﺎد ﻣﺨﺘﻠﻔﺔ و ﻋﻨﺎﺻﺮ اﻟﻰ اﻟﻤﺪاﺧﻞ .
ﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﻘﻮم اﻟﺪاﻟﺔ ﺑﺘﺠﻤﻴﻊ اﻟﻤﺪﺧﻼت ﺑﺎﻟﺘﺮﺗﻴﺐ ﻟﺘﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ ﻳﺴﺎوى اآﺒﺮ ﺑﻌﺪ ﻟﻤﺼﻔﻮﻓﺎت
اﻟﻤﺪﺧﻞ.
29
ﻻﺣﻆ ان ﺷﻜﻞ ﻣﺪﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ﻣﺨﺘﻠﻒ ﻋﻦ ﺷﻜﻞ ﻣﺪﺧﻞ اﻟﻌﻨﺼﺮ
وﺷﻜﻞ ﻣﺪﺧﻞ اﻟﻌﻨﺼﺮ ﻋﺒﺎرة ﻋﻦ ﻣﺮﺑﻊ واﺣﺪ وﺷﻜﻞ ﻣﺪﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ ﻋﺒﺎرة ﻋﻦ ﻣﺮﺑﻌﻴﻦ ﻣﺘﺠﺎورﻳﻦ.
آﻤﺎ ﻻﺣﻆ ان اﻟﻤﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﺗﻌﺘﺒﺮ ﻋﻨﺼﺮ ﻓﻰ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ.
اذا آﺎﻧﺖ ﺧﺎﺻﻴﺔ Concatenateﻣﻔﻌﻠﺔ ﻓﺎن اﻟﺨﺮج ﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ذات ﻧﻔﺲ اﺑﻌﺎد اﻟﻤﺼﻔﻮﻓﺎت اﻟﺪاﺧﻠﺔ
وﻋﻨﺎﺻﺮهﺎ هﻰ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺎت اﻟﺪاﺧﻠﺔ ﺑﺎﻟﺘﺮﺗﻴﺐ.
30
داﻟﺔ : Array Subset
ﺗﻘﻮم ﺑﺎﺧﺮاج ﺟﺰء ﻣﺤﺪد ﻣﻦ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺪاﺧﻠﺔ ﻟﻬﺎ.
وﻣﺪاﺧﻞ هﺬة اﻟﻤﺼﻔﻮﻓﺔ آﺎﻟﺘﺎﻟﻰ :
• ﻣﺪﺧﻞ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺘﻰ ﺳﻨﺄﺧﺬ ﻣﻨﻬﺎ اﻟﺠﺰء.
• اﻟﻤﺪﺧﻞ Indexوهﻮ رﻗﻢ اول ﻋﻨﺼﺮ ﻓﻰ اﻟﺠﺰء اﻟﺬى ﻧﺮﻳﺪﻩ.
• اﻟﻤﺪﺧﻞ Lengthوهﻮ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﺠﺰء اﻟﺬى ﻧﺮﻳﺪﻩ.
ﻣﺜﺎل
31
ﻳﻤﻜﻦ زﻳﺎدة ﻣﺪاﺧﻞ هﺬة اﻟﺪاﻟﺔ ﺑﻤﺪ اﻳﻘﻮﻧﺘﻬﺎ ﻻﺳﻔﻞ وذﻟﻚ ﻻﺧﺮاج ﺟﺰء ﻣﻦ ﻣﺼﻔﻮﻓﺔ ﻟﻬﺎ اآﺜﺮ ﻣﻦ ﺑﻌﺪ
اﻟﻤﺪﺧﻞ ﻳﻤﻜﻦ ان ﻳﻜﻮن ﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﻟﻬﺎ اآﺜﺮ ﻣﻦ ﺑﻌﺪ وذﻟﻚ ﺑﻤﺪ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻟﺰﻳﺎدة ﻋﺪد اﺑﻌﺎد ﻣﺼﻔﻮﻓﺔ اﻟﺪﺧﻞ.
وهﺬا ﻣﺜﺎل ﻟﻜﻴﻔﻴﺔ ﻣﻌﺮﻓﺔ ﻗﻴﻤﺔ ﻋﻨﺼﺮ ﻓﻰ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ :
32
وﻳﻤﻜﻦ ﺑﺎﺳﺘﺨﺪام هﺬة اﻟﺪاﻟﺔ اﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻒ او ﻋﻤﻮد ﻣﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ.
ﻓﺎذا اردﻧﺎ اﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻒ ﻣﻌﻴﻦ ﻧﺤﺪد رﻗﻢ اﻟﺼﻒ وﻧﺘﺮك رﻗﻢ اﻟﻌﻤﻮد ﺧﺎﻟﻴﺎ.
واذا اردﻧﺎ اﻟﺤﺼﻮل ﻋﻠﻰ ﻋﻤﻮد ﻧﺤﺪد رﻗﻢ اﻟﻌﻤﻮد وﻧﺘﺮك رﻗﻢ اﻟﺼﻒ ﺧﺎﻟﻴﺎ .
33
داﻟﺔ : Delete from Array
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺤﺬف ﺟﺰء ﻣﻦ اﻟﻤﺼﻔﻮﻓﺔ اﻟﺪاﺧﻠﺔ اﻟﻴﻬﺎ.
34
Polymorphism
ﻧﻌﻠﻢ ان اﻟﺪوال اﻟﺤﺴﺎﺑﻴﺔ اﻟﺠﻤﻊ واﻟﻄﺮح و اﻟﻀﺮب و اﻟﻘﺴﻤﺔ ﺗﻘﻮم ﺑﻌﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ ﺑﻴﻦ ﻗﻴﻤﺘﻴﻦ ﻋﺪدﻳﺘﻴﻦ
وهﺬة اﻟﻘﻴﻢ هﻰ ﻗﻴﻢ وﺣﻴﺪة.
وﻟﻜﻦ هﺬة اﻟﺪول ﻳﻤﻜﻦ ان ﺗﻘﻮم ﺑﻌﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﺑﻴﻦ ﻗﻴﻤﺔ وﺣﻴﺪة و ﻣﺼﻔﻮﻓﺔ او ﺗﻘﻮم ﺑﻌﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ ﺑﻴﻦ
ﻣﺼﻔﻮﻓﺘﻴﻦ.
واﺧﺘﻼف ﻣﺪاﺧﻞ هﺬة اﻟﺪوال ﻓﻰ اﻟﺴﻌﺔ و اﻟﺘﻤﺜﻴﻞ اﻟﻌﺪدى هﻮ ﻣﺎ ﻳﻌﺮف ﺑـ. Polymorphism
اﻣﺜﻠﺔ :داﻟﺔ اﻟﺠﻤﻊ ﻳﻤﻜﻦ ان ﺗﻘﻮم ﺑﺎﻟﺠﻤﻊ ﺑﻴﻦ رﻗﻤﻴﻦ او ﺑﻴﻦ رﻗﻢ وﻣﺼﻔﻮﻓﺔ او ﻣﺼﻔﻮﻓﺘﻴﻦ.
ﻣﺜﺎل
35
ﻣﻠﺤﻮﻇﺔ :
اذا ﻗﻤﺖ ﺑﻌﻤﻞ ﻋﻤﻠﻴﺔ ﺣﺴﺎﺑﻴﺔ ﺑﻴﻦ ﻣﺼﻔﻮﻓﺘﻴﻦ ﻣﺨﺘﻠﻔﺘﻴﻦ ﻓﻰ اﻟﺴﻌﺔ )ﻋﺪد اﻟﻌﻨﺎﺻﺮ ( ﻓﺎن اﻟﻨﺎﺗﺞ ﻣﺼﻔﻮﻓﺔ
ﺳﻌﺘﻬﺎ هﻰ ﻧﻔﺲ ﺳﻌﺔ اﺻﻐﺮهﻤﺎ.
ﻣﺜﺎل
36
Compound Arithmetic Function
اﻟﺪوال اﻟﺤﺴﺎﺑﻴﺔ اﻟﻤﺮآﺒﺔ
ﺗﺘﻴﺢ هﺬة اﻟﺪاﻟﺔ ﻋﻤﻞ ﻋﻤﻠﻴﺎت ﺣﺴﺎﺑﻴﺔ او ﻣﻨﻄﻘﻴﺔ ﺑﻴﻦ اآﺜﺮ ﻣﻦ ﻗﻴﻤﺘﻴﻦ.
ﻣﺜﺎل
37
38
.Positioning وﻋﻨﺪ ادراج هﺬة اﻟﺪاﻟﺔ ﻳﻜﻮن ﻟﻬﺎ ﻣﺪﺧﻼن وﻳﻤﻜﻦ زﻳﺎدة ﻋﺪد اﻟﻤﺪاﺧﻞ ﺑﻤﺪ اﻳﻘﻮﻧﺘﻬﺎ ﻻﺳﻔﻞ ﺑﺎﻻداة
ﻋﻨﺪ ادراج اﻟﺪاﻟﺔ ﻓﺎﻧﻬﺎ ﺗﻜﻮن ﻣﻌﺪة ﻟﺘﺆدى ﻋﻤﻠﻴﺔ اﻟﺠﻤﻊ ) (Addاو ANDوﻟﻜﻦ ﻳﻤﻜﻦ اﺧﺘﻴﺎر وﻇﻴﻔﺔ
اﺧﺮى ) Multiplyاو Andاو Orاو .(Xorوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ اﻟﺪاﻟﺔ و اﺧﺘﻴﺎر
Change Modeﺛﻢ اﺧﺘﻴﺎر اﻟﻮﻇﻴﻔﺔ.
Operatingﻋﻠﻰ اﻟﺪاﻟﺔ واﺧﺘﻴﺎر Change Modeﺛﻢ وﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ اﻟﻮﻇﻴﻔﺔ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻻداة
اﺧﺘﻴﺎر اﻟﻮﻇﻴﻔﺔ.
39
ﻳﻤﻜﻦ ﻋﻜﺲ اى ﻣﻦ اﻟﻤﺪاﺧﻞ او اﻟﻤﺨﺮج .
وﻋﻨﺪ ﻋﻜﺲ ﻣﺪﺧﻞ او ﻣﺨﺮج ﺗﻮﺿﻊ ﻋﻠﻴﻪ داﺋﺮة ﺻﻐﻴﺮة.
وﻟﻌﻜﺲ ﻣﺪﺧﻞ او اﻟﻤﺨﺮج ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺪﺧﻞ او اﻟﻤﺨﺮج وﻧﺨﺘﺎر . Invert
واﻟﻌﻜﺲ ﻓﻰ ﺣﺎﻟﺔ اﻟﺠﻤﻊ ﻳﻌﻨﻰ ﺿﺮب ﻣﺪﺧﻞ او اﻟﻤﺨﺮج ﻓﻰ اﺷﺎرة ﺳﺎﻟﺐ ﻓﺎذا آﺎن ﻗﻴﻤﺘﻪ xﺳﺘﻌﻜﺲ اﻟﻰ .–x
وﻓﻰ ﺣﺎﻟﺔ اﻟﻀﺮب اذا آﺎن ﻣﺪﺧﻞ او اﻟﻤﺨﺮج ﺑﺎﻟﻘﻴﻤﺔ xوﺗﻢ ﻋﻜﺴﻪ ﺳﺘﻜﻮن ﻗﻴﻤﺘﻪ .1/x
اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ اﻟﻌﻤﻠﻴﺎت اﻟﻤﻨﻄﻘﻴﺔ Andاو Orاو Xorﻓﺘﻌﻜﺲ ﺣﺎﻟﺔ اﻟﻤﺪﺧﻞ او اﻟﻤﺨﺮج ﺑـ Notﻓﻤﺜﻼ x
ﻋﻜﺴﻬﺎ .Not x
اﻣﺜﻠﺔ
40
41
42
Clusters
Clusterﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺔ ﻓﻬﻮ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ وﻟﻜﻦ ﻋﻜﺲ اﻟﻤﺼﻔﻮﻓﺎت هﺬة اﻟﻌﻨﺎﺻﺮ ﻳﻤﻜﻦ ان
ﺗﻜﻮن ﻣﺨﺘﻠﻔﺔ ﻓﻰ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ) (Data Typeﻓﻴﻤﻜﻦ ان ﺗﺤﺘﻮى ﻋﻠﻰ Numeric Control
و Boolean Controlو اﻧﻮاع اﺧﺮى.
وآﻤﺜﺎل ﻣﺠﻤﻮﻋﺔ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺨﺼﻴﺔ اﻟﺘﻰ ﺗﺤﺘﻮى ﻋﻠﻰ اﻻﺳﻢ وﺗﺎرﻳﺦ اﻟﻤﻴﻼد وﻋﻨﻮان اﻟﺴﻜﻦ و رﻗﻢ
اﻟﺘﻠﻴﻔﻮن هﻰ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺨﺘﻠﻔﺔ اﻻﻧﻮاع ﺗﻨﺪرج ﺗﺤﺖ اﺳﻢ واﺣﺪ وهﻰ اﻟﺒﻴﺎﻧﺎت اﻟﺸﺨﺼﻴﺔ.
وﻳﻤﻜﻦ ﺗﺸﺒﻴﺔ Clusterﺑﻜﺎﺑﻞ اﻟﺘﻠﻴﻔﻮن ﻓﻬﻮ ﻋﺒﺎرة ﻋﻦ آﺎﺑﻞ واﺣﺪ ﻳﻮﺟﺪ ﺑﻪ ﻋﺪة اﺳﻼك آﻞ ﺳﻠﻚ ﻳﻌﺒﺮ
ﻋﻦ ﻋﻨﺼﺮ ﻣﻌﻴﻦ.
و Clusterﻳﻌﺒﺮ ﻋﻨﻪ ﻓﻰ Block Diagramﺑـ ﺧﻂ واﺣﺪ ﺣﺘﻰ اذا آﺎن ﻳﺤﺘﻮى ﻋﻠﻰ ﻋﺪة ﻗﻴﻢ ﻻﻧﻮاع
ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻟﺒﻴﺎﻧﺎت.
وﺑﺬﻟﻚ ﺗﺴﻄﻴﻊ ﻧﻘﻞ ﻋﺪة ﻗﻴﻢ ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ ﺧﻂ واﺣﺪ ﺑﺪﻻ ﻣﻦ ﻋﺪة ﺧﻄﻮط.وﺑﺎﻟﺘﺎﻟﻰ ﻟﻮ ان هﺬة اﻟﺒﻴﺎﻧﺎت
ﺳﺘﺪﺧﻞ او ﺗﺨﺮج ﻣﻦ داﻟﺔ او SubVIﺳﺘﺤﺘﺎج اﻟﻰ ﻣﺨﺮج او ﻣﺪﺧﻞ واﺣﺪ.
وﻓﻰ Block Diagramﻳﻤﻜﻦ ﺗﺠﻤﻴﻊ ﻋﺪة ﺧﻄﻮط ﻟﺒﻴﺎﻧﺎت ﻣﺨﺘﻠﻔﻪ ﻓﻰ Clusterوﺗﺴﻤﻰ هﺬة اﻟﻌﻤﻠﻴﺔ
ﺑـ .Bundle
وﻳﻤﻜﻦ ان اﻳﻀﺎ ﻓﻚ Clusterاﻟﻰ ﻋﻨﺎﺻﺮﻩ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ وﺗﺴﻤﻰ هﺬة اﻟﻌﻤﻠﻴﺔ ﺑـ .UnBundle
43
و ﻟﻠـ Clusterﺳﻌﺔ ﺛﺎﺑﺘﺔ وﻣﺤﺪدة ﺑﺎﻟﻌﻨﺎﺻﺮ اﻟﺘﻰ ﻓﻴﻪ.
وﻻ ﻳﻤﻜﻦ رﺑﻂ ﻋﺪد Clusters 2اﻻ اذا آﺎﻧﺎ ﻟﻬﻢ ﻧﻔﺲ اﻟﻌﻨﺎﺻﺮ و ﻧﻔﺲ ﺗﺮﺗﻴﺐ ﺗﻠﻚ اﻟﻌﻨﺎﺻﺮ ﻓﻰ . Cluster
44
واﻟﻌﻨﺎﺻﺮ داﺧﻞ Clusterﻳﺠﺐ ان ﺗﻜﻮن آﻠﻬﺎ Controlsاو آﻠﻬﺎ Indicatorsوﻟﻴﺲ ﻣﺨﺘﻠﻂ.
ﺑﻤﺠﺮد ادراج Clusterداﺧﻞ Front Panelﻳﻮﺿﻊ ﻟﻪ ﺗﻠﻘﺎﺋﻴﺎ Terminalﻓﻰ Block Diagram
وﻟﺠﻌﻞ ﻣﺴﺎﺣﺔ اﻃﺎر Clusterﻋﻠﻰ ﻗﺪر اﻟﻌﻨﺎﺻﺮ داﺧﻞ Clusterﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ
اﻃﺎر Clusterوﻧﺨﺘﺎر
45
Autosize>>Size to Fit
46
ﺛﺎﻧﻴﺎ :ادراج ﺛﻮاﺑﺖ داﺧﻞ اﻃﺎر Clusterﻣﺜﻞ ) Numeric Constantاو Boolean Constantاو
.(String Constant
ﻳﻈﻬﺮ ارﻗﺎم ﻓﻰ ﻣﺮﺑﻌﺎت ﻣﻈﻠﻠﻪ ﺑﺎﻟﻠﻮن اﻻﺑﻴﺾ و واﺧﺮى ﻣﻈﻠﻠﺔ ﺑﺎﻟﻠﻮن اﻻﺳﻮد .
• اﻻرﻗﺎم اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺮﺑﻌﺎت اﻟﻤﻈﻠﻠﺔ ﺑﺎﻟﻠﻮن اﻻﺑﻴﺾ هﻰ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ اﻟﺤﺎﻟﻰ.
47
• اﻻرﻗﺎم اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺮﺑﻌﺎت اﻟﻤﻈﻠﻠﺔ ﺑﺎﻟﻠﻮن اﻻﺳﻮد هﻰ اﻟﺘﺮﺗﻴﺐ اﻟﺠﺪﻳﺪ ﻟﻠﻌﻨﺎﺻﺮ.
وﻳﻈﻬﺮ ﻓﻰ Toolbarﻣﻔﺎﺗﻴﺢ :
• ﻣﻔﺘﺎخ Okﻟﻠﺨﺮوج ﻣﻦ ﻋﻤﻠﻴﺔ اﻟﺘﺮﺗﻴﺐ ﺑﺎﻟﺘﺮﺗﻴﺐ اﻟﺠﺪﻳﺪ.
• ﻣﻔﺘﺎح Revertﻟﻠﻌﻮدة ﻟﻠﺘﺮﺗﻴﺐ اﻟﻘﺪﻳﻢ واﻟﻐﺎء اﻟﺘﻐﻴﺮات ﻓﻰ اﻟﺘﺮﺗﻴﺐ.
• ﻣﺮﺑﻊ ﻻدﺧﺎل ﺗﺮﺗﻴﺐ اﻟﻌﻨﺼﺮ .
48
اﺳﺘﺨﺪام Clusterﻓﻰ ﺗﻤﺮﻳﺮ اﻟﺒﻴﺎﻧﺎت ﻣﻦ و اﻟﻰ : SubVI
ﻧﻌﻠﻢ ﻣﻦ اﻟﺪرس اﻟﺮاﺑﻊ ان اﻗﺼﻰ ﻋﺪد ﻟﻠـ Terminalsﻷى Connector Paneﺧﺎﺻﺔ ﺑـ VIهﻮ .28
وﻟﻜﻦ اذا آﺎن ﻋﺪد Terminalsآﺒﻴﺮا ﻓﻘﺪ ﻳﺆدى اﻟﻰ وﺟﻮد اﺧﻄﺎء ﻓﻰ اﻟﺘﻮﺻﻴﻞ واﻳﻀﺎ اﻟﻰ ﺑﻌﺾ ﻣﻦ اﻟﺘﻌﻘﻴﺪ.
وﺗﺴﺘﺨﺪم Clusterﻓﻰ ﺗﻘﻠﻴﻞ ﻋﺪد اﻟﻮﺻﻼت اﻟﺘﻰ ﺗﺪﺧﻞ او ﺗﺨﺮج ﻣﻦ SubVIﻓﺒﻮاﺳﻄﺔ Cluster
ﺗﺴﺘﻄﻴﻊ ﺗﺠﻤﻴﻊ ﻋﺪد ﻣﻦ Controlsاو Indicatorsوادﺧﺎل او اﺧﺮاج ﻋﺪة ﻗﻴﻢ ﻣﻦ واﻟﻰ SubVI
ﺑﻮاﺳﻄﺔ Terminalواﺣﺪ ﻓﻘﻂ.
49
داﻟﺔ : Bundle
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺘﺠﻤﻴﻊ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻨﻔﺮدة ﻓﻰ Clusterﺟﺪﻳﺪ او ﺗﻐﻴﺮ ﻗﻴﻤﺔ اﺣﺪ اﻟﻌﻨﺎﺻﺮ
اﻟﻤﻮﺟﻮدة ﻓﻰ Clusterﻣﻮﺟﻮد.
. Positioning وﻳﻤﻜﻦ زﻳﺎدة ﻋﺪد ﻣﺪاﺧﻞ اﻟﺪاﻟﺔ ﺑﻤﺪهﺎ ﻻﺳﻔﻞ ﺑﺎﺳﺘﺨﺪام اﻻداة
50
وﻟﺘﻐﻴﻴﺮ ﻗﻴﻤﺔ ﻋﻨﺼﺮ ﻓﻰ Clusterﻧﻘﻮم ﺑﺘﻮﺻﻴﻞ Clusterﺑـﻤﺪﺧﻞ Clusterﻋﻨﺪﺋﺬ ﻳﺼﺒﺢ ﺗﻠﻘﺎﺋﻴﺎ
ﻋﺪد ﻣﺪاﺧﻞ اﻟﻌﻨﺎﺻﺮ ﻟﻠﺪاﻟﺔ ﻳﺴﺎوى ﻋﺪد ﻋﻨﺎﺻﺮ Clusterوﺑﻨﻔﺲ اﻟﺘﺮﺗﻴﺐ آﻤﺎ ﺳﻴﻈﻬﺮ ﻋﻨﺪ آﻞ ﻣﺪﺧﻞ
ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺨﺎﺻﺔ ﺑﺎﻟﻌﻨﺼﺮ.
ﺛﻢ ﻧﻘﻮم ﺑﺘﻮﺻﻴﻞ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة ﻟﻤﺪﺧﻞ اﻟﻌﻨﺼﺮ اﻟﻤﺮاد ﺗﻐﻴﻴﺮ ﻗﻴﻤﺘﻪ.
51
ﻣﻠﺤﻮﻇﺔ :ﻟﻮ ﺗﻢ ﺗﻮﺻﻴﻞ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة ﺑﻤﺪﺧﻞ ﻋﻨﺼﺮ اﺧﺮ وﻣﺨﺘﻠﻒ ﻓﻰ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﺳﻮف ﻳﻈﻬﺮ اﻟﺨﻂ
ﻣﻘﻄﻮﻋﺔ ﻻﻧﻪ ﺧﻄﺄ.
52
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﻗﻴﻢ اآﺜﺮ ﻣﻦ ﻋﻨﺼﺮ ﻓﻰ Clusterﻓﻰ ﻧﻔﺲ اﻟﻮﻗﺖ.
داﻟﺔ : Unbundle
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﻔﻚ Clusterاﻟﻰ ﻋﻨﺎﺻﺮﻩ.
وﻳﻮﺟﺪ ﻟﻬﺬة اﻟﺪاﻟﺔ ﻣﺪﺧﻞ واﺣﺪ ﻳﺘﻢ ﺗﻮﺻﻴﻞ ﻟﻪ Clusterاﻟﺘﻰ ﻧﺮﻳﺪ ﻓﻜﻪ ﻓﻴﺼﺒﺢ ﻋﺪد ﻣﺨﺎرج اﻟﺪاﻟﺔ
ﻳﺴﺎوى ﻋﺪد ﻋﻨﺎﺻﺮ Clusterوآﻞ ﻣﺨﺮج ﻳﻜﻮن ﻻﺣﺪ اﻟﻌﻨﺎﺻﺮ اﻟﻤﻮﺟﻮدة ﻓﻰ Clusterوﻳﻈﻬﺮ ﻋﻠﻰ
اﻟﻤﺨﺮج ﻧﻮع ﺑﻴﺎﻧﺎت اﻟﻌﻨﺼﺮ.
وﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ ﻋﻠﻰ ﻣﺨﺎرج اﻟﺪاﻟﺔ هﻮ ﻧﻔﺲ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ ﻓﻰ .Cluster
53
ﻓﻴﻤﻜﻦ ان ﻳﻮﺟﺪ ﻋﻨﺼﺮﻳﻦ ﺑﻨﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ﻓﻬﺬﻳﻦ اﻟﻌﻨﺼﺮ ﻟﻦ ﻳﻔﺮق ﺑﻴﻨﻬﻤﺎ اﻻ اﻟﺘﺮﺗﻴﺐ وﻟﻮﺣﺪث ان
وﺻﻠﺖ ﻋﻨﺼﺮ ﻣﻜﺎن اﻻﺧﺮ ﻟﻦ ﺗﻌﻄﻰ VIﺧﻄﺄ ﻻﻧﻬﻢ ﻟﻬﻢ ﻧﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت وﻟﻜﻦ اﻟﻨﺘﻴﺠﺔ ﺳﺘﻜﻮن ﺧﻄﺄ .
.Positioning وﻳﻤﻜﻦ زﻳﺎدة ﻋﺪد ﻣﺪاﺧﻞ اﻟﺪاﻟﺔ ﺑﻤﺪ اﻳﻘﻮﻧﺘﻬﺎ ﻻﺳﻔﻞ ﺑﻮاﺳﻄﺔ اﻻداة
54
وﻻﺧﺘﻴﺎر ﻋﻨﺼﺮ ﻣﻌﻴﻦ ﻣﻦ ﻋﻨﺎﺻﺮ Clusterﻟﺘﻐﻴﻴﺮ ﻗﻴﻤﺘﻪ )ﺑﻌﺪ ﺗﻮﺻﻴﻞ (Clusterﻧﻀﻐﻂ ﻋﻠﻰ
Operatingﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻗﺎﺋﻤﺔ ﺑﻌﻨﺎﺻﺮ Clusterﻧﺨﺘﺎر ﻣﻨﻬﺎ اﻟﻌﻨﺼﺮ اﻟﺬى ﻧﺮﻳﺪﻩ. اﻟﻤﺪﺧﻞ ﺑﺎﻻداة
55
.Positioning ﻟﺰﻳﺎدة ﻋﺪد اﻟﻤﺨﺎرج ﻧﻤﺪ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻻﺳﻔﻞ ﺑﻮاﺳﻄﺔ اﻻداة
Function Palette>>Programming>>Arrey
56
داﻟﺔ : Cluster to Array
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺎﻟﺘﺤﻮﻳﻞ ﻣﻦ Clusterﺑﻪ ﻋﺪد ﻣﻌﻴﻦ ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﻟﻬﺎ ﻧﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﻰ ﻣﺼﻔﻮﻓﺔ
ﺑﻬﺎ ﻧﻔﺲ اﻟﻌﺪد ﻣﻦ اﻟﻌﻨﺎﺻﺮ ﻟﻨﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت.
57
ﻻﺣﻆ اﻧﻪ ﻟﻜﻠﻰ ﺗﺴﺘﺨﺪم هﺬة اﻟﺪاﻟﺔ ﻳﺠﺐ ان ﺗﻜﻮن آﻞ اﻟﻌﻨﺎﺻﺮ ﻓﻰ Clusterﻟﻬﺎ ﻧﻔﺲ ﻧﻮع اﻟﺒﻴﺎﻧﺎت.
ﻻﺣﻆ اﻳﻀﺎ ان اذا آﺎن اﺣﺪ اﻟﻌﻨﺎﺻﺮ داﺧﻞ Clusterﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﻓﻠﻦ ﺗﺴﻄﻴﻊ ان ﺗﺴﺘﺨﺪم هﺬة
اﻟﺪاﻟﺔ ﻻن LabVIEWﻻ ﻳﺴﻤﻊ ﺑﻮﺟﻮد ﻣﺼﻔﻮﻓﺔ داﺧﻞ ﻣﺼﻔﻮﻓﺔ.
وﻋﻨﺪ اﺳﺘﺨﺪام هﺬة اﻟﺪاﻟﺔ ﻳﺠﺐ ان ﺗﺤﺪد ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻰ Clusterوذﻟﻚ ﻻن LabVIEWﻻ ﻳﻘﻮم
ﺑﺘﺤﺪﻳﺪ ﺣﺠﻢ Clusterﺗﻠﻘﺎﺋﻴﺎ ﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت.
وﻟﺘﺤﺪﻳﺪ ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻓﻨﺨﺘﺎر Cluster Sizeﻓﺘﻈﻬﺮ
ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﻋﺪد ﻋﻨﺎﺻﺮ Cluster
58
ﻣﺎذا ﻳﺤﺪث اذا ﻟﻢ ﻧﺤﺪد ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻰ Cluster؟
اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻌﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻰ Clusterهﻰ . 9
ﻓﺎذا آﺎن ﻋﺪد اﻟﻌﻨﺎﺻﺮ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ اﻗﻞ ﻣﻦ 9ﻓﺴﻮف ﻳﺤﺘﻮى Clusterﻋﻠﻰ ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ
ﺑﺎﻻﺿﺎﻓﺔ ﻋﻠﻰ ﻋﻨﺎﺻﺮ ﻣﻜﻤﻠﺔ ﻗﻴﻤﺘﻬﺎ اﻟﻘﻴﻤﺔ اﻻﺑﺘﺪاﺋﻴﺔ ﻟﻨﻮع اﻟﺒﻴﺎﻧﺎت ) ﻣﺜﺎل 0اذا آﺎن ﻧﻮع اﻟﺒﻴﺎﻧﺎت
False ، Numericاذا آﺎن ﻧﻮع اﻟﺒﻴﺎﻧﺎت ( Booleanﺣﺘﻰ ﻳﺼﺒﺢ اﻟﻌﺪد اﻟﻜﻠﻰ ﻓﻰ Cluster
ﻳﺴﺎوى 9ﻋﻨﺎﺻﺮ.
59
واذا آﺎن ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ اآﺒﺮ ﻣﻦ 9ﻓﺴﻮف ﻳﺤﺘﻮى Clusterﻋﻠﻰ اول 9ﻋﻨﺎﺻﺮ ﻣﻦ
ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ ﻓﻘﻂ .
ﻣﺜﺎل ﻋﻠﻰ اهﻤﻴﺔ اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ Clusterو : Array
هﺪف اﻟﻤﺜﺎل ﻋﻜﺲ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ ﻓﻰ Clusterوﺣﻴﺚ ان ﻻ ﺗﻮﺟﺪ داﻟﺔ ﺗﻘﻮم ﺑﻬﺬة اﻟﻮﻇﻴﻔﺔ ﻣﻊ
Clusterﺳﻨﻘﻮم ﺑﺘﺤﻮﻳﻞ Clusterاﻟﻰ Arrayوﻧﺴﺘﺨﺪم اﻟﺪاﻟﺔ Reverse 1D Arrayﻟﻌﻜﺲ
ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ ﺛﻢ ﻧﺤﻮل اﻟﻤﺼﻔﻮﻓﺔ اﻟﻨﺎﺗﺠﺔ اﻟﻰ .Cluster
60
وهﻨﺎك ﻧﻤﻄﻴﻦ ﻟﻠﻤﻘﺎرﻧﺔ ﺑﻴﻦ اﻟﻤﺼﻔﻮﻓﺎت و Clustersهﻤﺎ Compare Elementsو Compare
.Aggregates
وﻻﺧﺘﻴﺎر اﻟﻨﻤﻂ ﻧﻀﻐﻂ ﻋﻠﻰ اﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ داﻟﺔ اﻟﻤﻘﺎرﻧﺔ وﻧﺨﺘﺎر Comparison Mode
ﺛﻢ اﻟﻨﻤﻂ اﻟﺬى ﻧﺮﻳﺪﻩ.
61
وﻓﻰ ﻧﻤﻂ Compare Aggregatesﺗﻘﻮم داﻟﺔ اﻟﻤﻘﺎرﻧﺔ ﺑﻤﻘﺎرﻧﺔ آﻞ ﻋﻨﺼﺮ ﻣﻊ اﻟﺬى ﻳﻘﺎﺑﻠﻪ اﻟﺬى
ﻳﻘﺎﺑﻠﻪ واذا آﺎﻧﺖ آﻞ اﻟﻤﻘﺎرﻧﺎت ﻧﺘﻴﺠﺘﻬﺎ Trueﺗﺨﺮج اﻟﺪاﻟﺔ اﻟﻘﻴﻤﺔ Trueواذا ﻟﻢ ﺗﻜﻦ آﻞ اﻟﻤﻘﺎرﻧﺎت
ﻗﻴﻤﺘﻬﺎ Trueﺗﺨﺮج اﻟﺪاﻟﺔ اﻟﻘﻴﻤﺔ .Falseان اﻟﺪاﻟﺔ ﻓﻰ هﺬا اﻟﻨﻤﻂ ﺗﺨﺮج ﻗﻴﻤﺔ وﺣﻴﺪة Trueاو
.False
وﻓﻰ ﻧﻤﻂ Compare Elementsﺗﻘﻮم داﻟﺔ اﻟﻤﻘﺎرﻧﺔ ﺑﻤﻘﺎرﻧﺔ آﻞ ﻋﻨﺼﺮ ﻣﻊ اﻟﺬى ﻳﻘﺎﺑﻠﻪ وﺗﺨﺮج
ﻧﺘﺎﺋﺞ اﻟﻤﻘﺎرﻧﺎت آﻠﻬﺎ ﻓﻰ ﻣﺼﻔﻮﻓﺔ او Clusterﺑﻨﻔﺲ ﺗﺮﺗﻴﺐ اﻟﻌﻨﺎﺻﺮ.
62
63
Error Clustersودوال Error-Handling
Error Clusterوهﻮ Clusterﺧﺎص ﻟﺘﺨﺰﻳﻦ و ﺗﻤﺮﻳﺮ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻻﺧﻄﺎء اﻟﺘﻰ ﺗﺤﺪث اﺛﻨﺎء
ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ.
وﻳﻤﻜﻦ ادراج هﺬا Clusterﻋﻠﻰ هﻴﺌﺔ Error-In Clusterاو Error-Out Clusterﻣﻦ:
Controls Palette>>Modern>>Array , Matrix & Cluster
64
ﻓﺎذا آﺎﻧﺖ ﻗﻴﻤﺘﻪ :
ﻣﻮﺟﺐ :رﻗﻢ اﻟﺨﻄﺄ ﻓﻠﻜﻞ ﺧﻄﺄ رﻗﻢ آﻮدى ﻣﻌﻴﻦ.
ﺳﺎﻟﺐ :رﻗﻢ اﻟﺘﺤﺬﻳﺮ ﻓﻠﻜﻞ ﺗﺤﺬﻳﺮ رﻗﻢ آﻮدى ﻣﻌﻴﻦ.
ﺻﻔﺮ :ﻟﻢ ﻳﺤﺪث ﺧﻄﺄ .
:Source -3ﻧﺺ ﻳﺤﺘﻮى ﻋﻠﻰ وﺻﻒ ﻟﻤﺼﺪر اﻟﺨﻄﺄ ﺳﻮاء آﺎن داﻟﺔ او .SubVI
ﻳﺤﺪث اﻟﺨﻄﺄ ﻏﺎﻟﺒﺎ ﻋﻨﺪﻣﺎ ﻻ ﺗﺴﺘﻄﻴﻊ اﻟﺪاﻟﺔ او SubVIﺗﻜﻤﻠﺔ ﻣﻬﻤﺘﻬﺎ ﺑﺴﺒﺐ ﻋﺪم ﺗﻮﻓﺮ ﻣﻌﻠﻮﻣﺎت اﺳﺎﺳﻴﺔ
ﻟﺘﻜﻤﻠﻪ ﻣﻬﻤﺘﻬﺎ او ان اى ﻣﻦ ﺗﻠﻚ اﻟﻤﻌﻠﻮﻣﺎت اﻟﻤﻬﻤﺔ ﻏﻴﺮ ﺻﺎﻟﺤﺔ.
وﻳﺴﺘﺨﺪم هﺬا Clusterﻋﺎدة ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻟﺪوال و SubVIآﻤﺪﺧﻞ او ﻣﺨﺮج.
65
آﻴﻒ ﺗﺘﻔﺎﻋﻞ SubVIsو اﻟﺪوال ﻣﻊ اﻻﺧﻄﺎء :
اذا ﺣﺪث ﺧﻄﺄ داﺧﻞ داﻟﺔ او SubVIﻓﺎﻧﻬﺎ ﺗﺨﺮج ﻣﻌﻠﻮﻣﺎت اﻟﺨﻄﺄ ﻓﻰ error out clusterﺣﺘﻰ
ﺗﻜﻮن هﺬة اﻟﻤﻌﻠﻮﻣﺎت ﺟﺎهﺰة ﻟﻠـ SubVIواﻟﺪوال اﻟﺘﻰ ﺗﻠﻴﻬﺎ.
اذا اﺳﺘﻘﺒﻠﺖ SubVIاو داﻟﺔ ﻋﻠﻰ ﻣﺪﺧﻠﻬﺎ error inﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ ﻓﺎﻧﻬﺎ ﻻ ﺗﻘﻮم ﺑﺎى ﻋﻤﻞ اﻻ ﺑﻌﺪ
ازاﻟﺔ ﺳﺒﺐ اﻟﺨﻄﺄ.واذا ﻟﻢ ﻳﺘﻢ ازاﻟﺔ ﺳﺒﺐ اﻟﺨﻄﺄ ﺗﻘﻮم VIﺑﺘﻤﺮﻳﺮ error inاﻟﻰ error outﻟﻴﻜﻮن
ﺟﺎهﺰا ﻟﻠﺪوال و SubVIsاﻟﺘﻰ ﺗﻠﻴﻬﺎ.
66
• اﻟﺤﺎﻟﺔ اﻻوﻟﻰ ) Errorﻟﻮن اﻃﺎرهﺎ اﺣﻤﺮ ( وهﻰ اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻨﻔﺬ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ اذا آﺎن
Error In Clusterﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ ).(Status=True
• اﻟﺤﺎﻟﺔ اﻟﺜﺎﻧﻴﺔ ) No Errorﻟﻮن اﻃﺎرهﺎ اﺧﻀﺮ ( وهﻰ اﻟﺤﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻨﻔﺬ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ اذا
آﺎن Error In Clusterﻻ ﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ ).(Status=False
وﻏﺎﻟﺒﺎ ﻋﻨﺪ ﺗﺼﻤﻴﻢ SubVIﻳﻮﺿﻊ آﻮد SubVIداﺧﻞ اﻟﺤﺎﻟﺔ . No Errorﻓﻬﻰ ﺳﺘﻨﻔﺬ ﻣﻬﻤﺘﻬﺎ اذا ﻟﻢ
ﻳﺄﺗﻰ ﻟﻬﺎ ﺧﻄﺄ ﻣﻦ اﻟﺪوال او SubVIsاﻟﺘﻰ ﻗﺒﻠﻬﺎ.
وﻓﻰ اﻟﺤﺎﻟﺔ Errorﺳﻮف ﺗﻘﻮم ﺑﺘﻤﺮﻳﺮ Error Clusterاﻟﻰ ﺧﺎرﺟﻬﺎ ﻟﺘﻨﻘﻞ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺨﻄﺄ اﻟﻰ
اﻟﺪوال و SubVIsاﻟﺘﻰ ﺑﻌﺪهﺎ.
67
: Error Clusters دﻣﺞ
. ﻳﻤﻜﻦ ﺟﻤﻌﻬﻢ ﺟﻤﻴﻌﺎ ﻓﻰ ﻣﺴﺎر واﺣﺪError Cluster اذا آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ ﻣﺼﺪر او ﻣﺴﺎر ﻟﻠـ
.Error Clusters ﻟﺪﻣﺞ اآﺜﺮMerge Errors.vi وﺗﺴﺘﺨﺪم
68
وﻣﺪاﺧﻞ هﺬة VIﺛﻼث ﻣﺪاﺧﻞ :
: Error In1ﻣﺪﺧﻞ ﻟـ Error Clusterاﻻآﺜﺮ اهﻤﻴﺔ.
: Error In 2ﻣﺪﺧﻞ ﻟـ Error Clusterواهﻤﻴﺔ هﺬا اﻟﻤﺪﺧﻞ ﺑﻌﺪ اهﻤﻴﺔ Error In1
: Error In3ﻣﺪﺧﻞ ﻟـ Error Clusterواهﻤﻴﺔ هﺬا اﻟﻤﺪﺧﻞ ﺑﻌﺪ اهﻤﻴﺔ .Error In2
: Error Array inﻣﺪﺧﻞ ﻟﻤﺼﻔﻮﻓﺔ ﻣﻦ Error Clustersواهﻤﻴﺘﻬﺎ ﺗﺄﺗﻰ ﺑﻌﺪ اهﻤﻴﺔ اﻟﻤﺪاﺧﻞ اﻟﺜﻼث.
وﺗﺨﺮج هﺬة Error Cluster VIوﺣﻴﺪ .ﻓﺎذا آﺎن اﺣﺪ اﻟﻤﺪاﺧﻞ ﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ )( Status=True
ﺗﺨﺮج اﻟﺪاﻟﺔ Error Clusterﻟﻬﺬا اﻟﻤﺪﺧﻞ .
وﻟﻮ آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ ﻣﺪﺧﻞ ﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ ﺗﺨﺮج اﻟﺪاﻟﺔ Error Clusterﻟﻠﻤﺪﺧﻞ اآﺜﺮ اهﻤﻴﺔ.
ﻣﺜﺎل :ﻟﻮ ان Error In2و Error In 3ﻳﺤﺘﻮﻳﺎن ﻋﻠﻰ اﺧﻄﺎء ) Status =Trueﻓﻰ آﻼهﻤﺎ( ﺗﺨﺮج
اﻟﺪاﻟﺔ Error In 2ﻻﻧﻪ اآﺜﺮ اهﻤﻴﺔ.
واذا ﻟﻢ ﻳﻜﻦ هﻨﺎك اﺧﻄﺄ ﻓﻰ اﻟﻤﺪاﺧﻞ ﺗﺒﺤﺚ اﻟﺪاﻟﺔ ﻋﻦ اﻟﺘﺤﺬﻳﺮات ﻋﻠﻰ اﻟﻤﺪاﺧﻞ وﺗﺨﺮج اآﺜﺮ اﻟﺘﺤﺬﻳﺮات
اهﻤﻴﺔ ان وﺟﺪت.
واذا ﻟﻢ هﻨﺎك اى ﺧﻄﺄ او ﺗﺤﺬﻳﺮ ﺗﺨﺮج اﻟﺪاﻟﺔ Error Clusterﻻ ﻳﺤﺘﻮى ﻋﻠﻰ اﺧﻄﺎء )(No Error
69
ﺗﻘﻮم هﺬة VIﺑﺘﺤﻮﻳﻞ اﻟﺮﻗﻢ اﻟﻜﻮدى ﻟﻠﺨﻄﺄ اﻟﻰ . Error Cluster
وﻣﺪاﺧﻞ هﺬة :VI
• : Error Codeاﻟﺮﻗﻢ اﻟﻜﻮدى ﻟﻠﺨﻄﺄ .
• : Error Messageوﺻﻒ ﻟﻠﺨﻄﺄ هﺬا اﻟﻮﺻﻒ ﻳﻈﻬﺮ ﻋﻨﺪ اﺳﺘﺨﺪام Simple Error Handler
)ﺳﻴﺄﺗﻰ ﺷﺮﺣﻪ ﻓﻰ اﻟﺠﺰء اﻟﻘﺎدم( واذا ﻟﻢ ﻳﻮﺻﻞ هﺬة اﻟﻤﺪﺧﻞ ﻓﺎن LabVIEWﻳﻈﻬﺮ اﻟﻮﺻﻒ اﻟﺘﻘﻠﻴﺪى
اﻟﺨﺎص ﺑـ .Error Code
• : Error inﻣﺪﺧﻞ Error Clusterاﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ اﻟﻤﻌﻠﻮﻣﺎت ﻋﻦ اى ﺧﻄﺄ ﺣﺪث ﻗﺒﻞ ﻋﻤﻞ . VI
وﻣﺨﺮج هﺬة :VI
• Error Cluster : Error Outﻳﺤﺘﻮى ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺨﻄﺄ اﻟﺨﺎص ﺑﺎﻟـ Error
Codeوذﻟﻚ ﻓﻰ ﺣﺎﻟﺔ اذا آﺎن Error Inﻻﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ ان Error In
ﻳﺤﺘﻮى ﻋﻠﻰ ﺧﻄﺄ ﻓﺎن ﺧﺮج Error Outهﻮ ﻧﻔﺴﻪ .Error In
70
71
آﻴﻔﻴﺔ اﻇﻬﺎر رﺳﺎﻟﺔ ﺧﻄﺄ ﻟﻠﻤﺴﺘﺨﺪم :
ﻋﻨﺪﻣﺎ ﻻ ﻳﺴﺘﻄﻴﻊ اﻟﺒﺮﻧﺎﻣﺞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺨﻄﺄ او ازاﻟﺘﻪ ﻓﺎﻧﻪ ﻳﻤﻜﻦ اﻇﻬﺎر رﺳﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺪم ﺗﺒﻴﻦ ﺣﺪوث اﻟﺨﻄﺄ .
ﺗﺴﺘﺨﺪم Simple Error Handler .viﻻﻇﻬﺎر رﺳﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺪم ﺑﺎﻟﺨﻄﺄ اﻟﺬى ﺣﺪث .
وﻳﺘﻢ ادراج هﺬة VIﻣﻦ
Function Palette>>Programming>>Dialog & User Interface
وﻳﺘﻢ ﺗﻮﺻﻴﻞ Error Clusterﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ اﻟﻰ ﻣﺪﺧﻞ هﺬة VIﻓﺎذا آﺎن هﻨﺎك ﺧﻄﺄ ﺗﺨﺮج هﺬة اﻟﺪاﻟﺔ
وﺻﻒ ﻟﻠﺨﻄﺄ آﻤﺎ اﻧﻬﺎ ﺗﻈﻬﺮ رﺳﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺪم ﺑﻪ هﺬا اﻟﻮﺻﻒ.
و ﻳﺤﺪد اﻟﻤﺪﺧﻞ type of dialogﻧﻮع اﻟﺮﺳﺎﻟﺔ .
72
واذا ﻟﻢ ﻳﻮﺻﻞ هﺬة اﻟﻤﺪﺧﻞ ﺗﻈﻬﺮ رﺳﺎﻟﺔ ﺑﺰرار واﺣﺪ.
73
اﺧﺘﺒﺎر ﺣﺪوث ﺧﻄﺄ ﻓﻰ : Loops
ﻳﺴﺘﺨﺪم Statusاﻟﻤﻮﺟﻮد ﻓﻰ Error Clusterﻓﻰ اﺧﺘﺒﺎر ﺣﺪوث ﺧﻄﺄ ﻣﻦ ﻋﺪﻣﻪ .
وذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ .Unbundle by Name
74
وﻳﺴﺘﺨﺪم Statusﻓﻰ داﺧﻞ Loopsﻻﻳﻘﺎف ﻋﻤﻠﻬﺎ ﻓﻰ ﺣﺎﻟﺔ ﺣﺪوث ﺧﻄﺄ.
75
ﺗﻢ ﺑﺤﻤﺪ اﷲ ﺗﻌﺎﻟﻰ اﻻﻧﺘﻬﺎء ﻣﻦ اﻟﺪرس
اﻟﻰ اﻟﻘﺎء ﺑﺎذن اﷲ ﺗﻌﺎﻟﻰ ﻣﻊ اﻟﺪرس اﻟﺴﺎﺑﻊ
photonlv@gmail.com
LabVIEW دروس ﺗﻌﻠﻴﻢ
اﻟﺪرس اﻟﺴﺎﺑﻊ
Charts and Graphs
اﻟﻔﻬﺮس
i
37.................................................................................................. XY Graphs
38............................................................................ XY Graph آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ
38................................................................. ﻳﺤﺘﻮى ﻋﻠﻰ رﺳﻢ واﺣﺪXY Graph
40.............................................................. ﻳﺤﺘﻮى ﻋﻠﻰ آﺜﺮ ﻣﻦ رﺳﻢXY Graph
40............................................... XY Graph ﻓﻰPlanes اﺳﺘﺨﺪام اﻧﻮاع ﻣﺨﺘﻠﻔﺔ ﻣﻦ
43................................................................................. Graphs وCharts ﻣﻜﻮﻧﺎت
43............................................................................. (Scales) ﺧﺼﺎﺋﺺ اﻟﺘﺪرﻳﺞ
45................................................................................... AutoScale ﺧﺎﺻﻴﺔ
46..................................................................................... Loose Fit ﺧﺎﺻﻴﺔ
47.......................................................................................... Formatting
54................................................................................... The Scale Legend
56...................................................................................... The Plot Legend
69......................................................................................... Graph Cursors
69................................................................................. The Cursor Legend
70........................................ Cursor Legend اوGraph اﻟﻰCursor آﻴﻔﻴﺔ اﺿﺎﻓﺔ
71.................................................................................... Cursor اﻋﺎدة ﺗﺴﻤﻴﺔ
71.......................................................................................... Cursor ﺗﺤﺮﻳﻚ
73....................................................................................... Cursor ﺧﺼﺎﺋﺺ
77.................................................................................. Graph Annotations
78....................................................................Graph اﻟﻰAnnotation اﺿﺎﻓﺔ
80..................................................................................... Annotation ﺣﺬف
81....................................................................... Intensity Charts and Graphs
82....................................................... Intensity Graph and Charts آﻴﻔﻴﺔ ادراج
82.......................................... Intensity Graph وIntensity Chart آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ
84.............................................................................................. Color Scale
84........................................................................................ ﺗﺨﺼﻴﺺ ﻟﻮن ﻟﻠﻘﻴﻢ
88.................................................................................................. 3D Graphs
ii
90................................................................................... 3D Surface Graph
91............................................................. 3D Surface Graph آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ
95.............................................................................. 3D Parametric Graph
97...................................................................................... 3D Curve Graph
99..................................................................................... 3D Graph ﺧﺼﺎﺋﺺ
102.............................................. Dynamic Data وWaveforms وTime Stamps
103......................................................................................... Time Stamps
103........................ Constant اوIndicator اوTime Stamp Control آﻴﻔﻴﺔ ادراج
105............................................................................. Time Stamp ﺗﻐﻴﻴﺮ ﻗﻴﻢ
108........................................................................ Time Stamp اﻟﻌﻤﻠﻴﺎت ﻋﻠﻰ
111.......................................................... Numeric وTime Stamp اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ
113............................................................................................ Waveforms
116............................................................... واﻟﻤﺼﻔﻮﻓﺎتWaveform ﻣﻘﺎرﻧﺔ ﺑﻴﻦ
117....................................................................... Waveform اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑـ
127............................................................................................ Digital Data
131........................................................................ Digital Waveform Graph
133........................................................................................ Dynamic Data
136.................................................................................. Mixed Signal Graph
140....................................................................................Multi-Plot Cursor
142..........................................................Graphs اوCharts اﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻮرة ﻣﻦ
iii
هﺪف اﻟﺪرس
iv
ﻣﻘﺪﻣﺔ
ﻟﻠﺮﺳﻮﻣﺎت اهﻤﻴﺔ آﺒﻴﺮة ﻓﻰ ﺗﻤﺜﻴﻞ اﻟﺒﻴﺎﻧﺎت واﻟﺤﺼﻮل ﻣﻨﻬﺎ ﻋﻠﻰ اﻟﻌﺪﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت.
و LabVIEWﻏﻨﻰ ﺑﻜﺜﻴﺮ ﻣﻦ اﻻدوات اﻟﺘﻰ ﺗﺘﻴﺢ رﺳﻢ و ﺗﻤﺜﻴﻞ اﻻﻧﻮاع اﻟﻤﺨﺘﻠﻔﻪ ﻣﻦ اﻟﺒﻴﺎﻧﺎت
ﻓﻰ اﻓﻀﻞ ﺻﻮرة .وﺳﻨﺴﺘﻌﺮض ﻓﻰ هﺬا اﻟﺪرس ﺑﺎﻟﺘﻔﺼﻴﻞ هﺬة اﻻدوات و آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ
وﺗﻬﻴﺌﺘﻬﺎ ﻻﻓﻀﻞ ﺷﻜﻞ .
1
Waveform Charts
Chartsهﻰ ﻧﻮع ﺧﺎص ﻣﻦ Numeric Indicatorﻻﻇﻬﺎر رﺳﻢ ﺑﻴﺎﻧﻰ او اﺷﺎرة او اآﺜﺮ.
وآﻤﺎ ﻧﻌﻠﻢ ان اﻟﺮﺳﻢ اﻟﺒﻴﺎﻧﻰ هﻮ ﻋﺒﺎرة ﻋﻦ ﺗﻤﺜﻴﻞ ﺑﺎﻟﺮﺳﻢ ﻟﻌﻼﻗﺔ ﺑﻴﻦ ﻣﺘﻐﻴﺮﻳﻦ Yو . Xوﻋﺎدة ﻣﺎ ﻳﻜﻮن Yهﻮ
اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ ﺗﻤﺜﻴﻠﻬﺎ ﻣﻊ اﻟﺰﻣﻦ .X
2
وﻋﺎدة ﻣﺎ ﺗﺴﺘﺨﺪم Chartsداﺧﻞ Loopsآﻤﺎ ﺳﻨﺮى .وﻣﻦ ﺧﺼﺎﺋﺺ Chartsاﻧﻬﺎ ﺗﻈﻬﺮ اﻟﺒﻴﺎﻧﺎت اﻟﺠﺪﻳﺪة
اﻟﻰ ﺟﺎﻧﺐ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺳﺒﻖ اﻇﻬﺎرهﺎ آﻤﺎ اﻧﻬﺎ ﺗﻘﻮم ﺑﺎﺳﺘﻤﺮار ﺑﺘﺤﺪﻳﺚ اﻟﺮﺳﻢ ﻋﻨﺪ وﺻﻮل ﺑﻴﺎﻧﺎت ﺟﺪﻳﺪة.
وﻳﻮﺟﺪ ﻟﻠـ Chartﻋﺪة اﻧﻤﺎط ﻟﺘﺤﺪﻳﺚ اﻟﺒﻴﺎﻧﺎت ﻋﻠﻴﻪ.
3
: Strip Mode
ﻓﻰ هﺬا اﻟﻨﻤﻂ ﻋﻨﺪ اﺿﺎﻓﺔ ﻧﻘﻄﺔ ﺟﺪﻳﺪة ﺗﻈﻬﺮ ﻓﻰ اﻗﺼﻰ ﻳﻤﻴﻦ Chartوﻳﺘﻢ اﺧﻔﺎء اﻗﺪم ﻧﻘﻄﺔ اﻟﺘﻰ ﺗﻘﻊ اﻗﺼﻰ ﻳﺴﺎر
Chartاى ﻳﺤﺪث ازاﺣﺔ ﻟﺠﻤﻴﻊ اﻟﻨﻘﻂ ﺟﻬﺔ اﻟﻴﺴﺎر.
4
: Scope Node
ﻳﺘﻢ ﻋﺮض اﻟﻨﻘﻂ ﺣﺘﻰ ﺗﺼﻞ اﻟﻨﻘﻂ اﻟﻰ اﻟﺤﺎﻓﺔ اﻟﻴﻤﻨﻰ ﻋﻨﺪﺋﺬ ﻳﺘﻢ ﺣﺬف ﺟﻤﻴﻊ اﻟﻨﻘﻂ ﻟﻴﺘﻢ ﻋﺮض اﻟﻨﻘﻂ اﻟﺠﺪﻳﺪة ﻣﻦ
اﻟﺒﺪاﻳﺔ )اﻟﺤﺎﻓﺔ اﻟﻴﺴﺮى( وهﻜﺬا ﻳﺘﻢ ﺗﻜﺮار هﺬة اﻟﻌﻤﻠﻴﺔ.
5
: Sweep Mode
هﺬة اﻟﻨﻤﻂ ﻳﺸﺒﺔ Scope Modeﻓﻔﻴﻪ ﻳﺘﻢ ﻋﺮض اﻟﻨﻘﻂ ﺣﺘﻰ ﺗﺼﻞ اﻟﻨﻘﻂ اﻟﻰ اﻟﺤﺎﻓﺔ اﻟﻴﻤﻨﻰ وﻟﻜﻦ ﻻ ﻳﺘﻢ ﺣﺬف
اﻟﻨﻘﻂ واﻧﻤﺎ ﻳﺘﻢ ﻋﺮض اﻟﻨﻘﻂ اﻟﺤﺪﻳﺜﺔ ﻣﻦ اﻟﺒﺪاﻳﺔ )اﻟﺤﺎﻓﺔ اﻟﻴﺴﺮى( وﺗﺴﺘﺒﺪل آﻞ ﻧﻘﻄﺔ ﻗﺪﻳﻤﺔ ﺑﻨﻘﻄﺔ ﺣﺪﻳﺜﺔ وﻳﻈﻬﺮ ﺧﻂ
رأﺳﻰ ﻳﺒﻴﻦ اﻟﻔﺮق ﺑﻴﻦ اﻟﻨﻘﻂ اﻟﻘﺪﻳﻤﺔ واﻟﺤﺪﻳﺜﺔ )اﻟﻨﻘﻂ اﻟﻘﺪﻳﻤﺔ ﻋﻠﻰ ﻳﻤﻴﻦ اﻟﺨﻂ واﻟﻨﻘﻂ اﻟﺤﺪﻳﺜﺔ ﻋﻠﻰ ﻳﺴﺎر اﻟﺨﻂ( وهﻜﺬا
ﻳﺘﻢ ﺗﻜﺮار هﺬة اﻟﻌﻤﻠﻴﺔ.
6
اي اﻻﻧﻤﺎط اﺳﺮع ﻓﻰ اﻟﻌﺮض ؟
ﻧﻈﺮا ﻻﻧﻪ ﻓﻰ اﻟﻨﻤﻂ Stripﻳﺘﻢ ازاﺣﺔ اﻟﻨﻘﻂ ﺑﺎﻋﺎدة رﺳﻤﻬﺎ وهﺬا ﻻﻳﺤﺪث ﻓﻰ اﻟﻨﻤﻄﻴﻦ اﻻﺧﺮﻳﻦ ﻓﺎن هﺬا اﻟﻨﻤﻂ
اﺑﻄﻰء ﻓﻰ ﻋﺮض اﻟﺒﻴﺎﻧﺎت ﻋﻦ اﻟﻨﻤﻄﻴﻦ اﻻﺧﺮﻳﻦ.
ﻣﻠﺤﻮﻇﺔ :
اﻟﻘﻴﻢ اﻟﺘﻰ ﺗﻌﺮض ﻋﻠﻰ Chartهﻰ ﻗﻴﻢ اﻟﻤﺤﻮر Yاﻣﺎ اﻟﻤﺤﻮر Xﻓﻴﻌﺘﺒﺮ ﻋﺪاد ﻟﻬﺬة اﻟﻘﻴﻢ ﻓﻌﻨﺪ اﺿﺎﻓﺔ ﻗﻴﻤﺔ ﺟﺪﻳﺪة
ﻓﻰ Chartﻳﻘﻮم LabVIEWﺑﺰﻳﺎدة ﻗﻴﻤﺔ Xﺑﻮاﺣﺪ.
وﻻﻋﻄﺎء ﻣﺤﻮر Xﻗﻴﻢ ﻣﻌﻴﻨﺔ ﻧﺴﺘﺨﺪم Graphﺑﺪﻻ ﻣﻦ . Chart
7
آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ :Waveform Chart
ﻳﻤﻜﻦ ﻋﺮض رﺳﻢ واﺣﺪ ﻋﻠﻰ (Single Plot) Chartوﻳﻤﻜﻦ ﻋﺮض اآﺜﺮ ﻣﻦ رﺳﻢ )(Multiple-Plot
Chartﻳﺤﺘﻮى ﻋﻠﻰ رﺳﻢ واﺣﺪ ): (Single-Plot
ﺗﻮﺟﺪ ﻃﺮﻳﻘﻴﺘﻦ ﻟﻌﻤﻞ رﺳﻢ وﺣﻴﺪ ﻋﻠﻰ : Chart
-1اﺑﺴﻂ اﻟﻄﺮق ﻟﻌﺮض ﺑﻴﺎﻧﺎت ﻋﻠﻰ Chartهﻰ ﺗﻮﺻﻴﻞ ﻗﻴﻤﺔ وﺣﻴﺪة ) (Scalar Valueﻟﻪ وﺗﻀﺎف هﺬة اﻟﻘﻴﻤﺔ
آﻨﻘﻄﺔ ﻓﻰ اﻟﺮﺳﻢ اﻟﻤﻮﺟﻮد ﻋﻠﻰ .Chart
-2ﻳﻤﻜﻦ ان ﺗﻌﺮض ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻘﻴﻢ ﻋﻠﻰ Chartﻣﺮة واﺣﺪة ﺑﺪﻻ ﻣﻦ ﻧﻘﻄﺔ ﻧﻘﻄﺔ وذﻟﻚ ﺑﺘﻮﺻﻴﻞ Chartﺑـ
ﻣﺼﻔﻮﻓﺔ ) ( Arrayﺑﻬﺎ اﻟﻘﻴﻢ اﻟﺘﻰ ﻧﺮﻳﺪ ﻋﺮﺿﻬﺎ.
8
وﻳﻤﻜﻦ ﺗﻜﻮﻳﻦ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺎﺳﺘﺨﺪام Loops
ﻣﺜﺎل :
9
-1ﻳﻤﻜﻦ ﻋﺮض اآﺜﺮ ﻣﻦ رﺳﻢ ﻋﻠﻰ Chartوذﻟﻚ ﺑﺘﺠﻤﻴﻊ ﻗﻴﻢ وﺣﻴﺪة ) (Scalar Valuesﺑﻮاﺳﻄﺔ داﻟﺔ
Bundleاﻟﻤﻮﺟﻮدة ﻓﻰ
Function Palette>>Programming>> Cluster & Variant
وآﻞ ﻗﻴﻤﺔ ﺳﺘﻀﺎف آﻨﻘﻄﺔ ﻋﻠﻰ Chartﻓﻰ رﺳﻢ ﻣﺴﺘﻘﻞ.
10
وﻟﻜﻰ ﻧﻀﻴﻒ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﻨﻘﻂ ﻓﻰ آﻞ رﺳﻢ ﻣﺮة واﺣﺪة ﻳﻤﻜﻦ ان ﻧﻘﻮم ﺑﻌﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ Clustersوآﻞ
Clusterﻳﺤﺘﻮى ﻗﻴﻤﺔ ﻟﻨﻘﻄﺔ ﻓﻰ آﻞ رﺳﻢ.
وﻳﻤﻜﻦ ﻋﻤﻞ Clusterﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ Bundleواﻳﻀﺎ ﻳﻤﻜﻦ ﺗﺠﻤﻴﻊ هﺬة Clustersﻓﻰ ﻣﺼﻔﻮﻓﺔ ﺑﺎﺳﺘﺨﺪام
.Loops
ﻣﺜﺎل:
11
--2ﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻤﺼﻔﻮﻓﺎت ذات اﻟﺒﻌﺪﻳﻦ ﻻﻇﻬﺎر اآﺜﺮ ﻣﻦ رﺳﻢ ﻋﻠﻰ Chartوذﻟﻚ ﺑﻮﺿﻊ ﻣﺠﻤﻮﻋﺔ ﻗﻴﻢ آﻞ
رﺳﻢ ﻓﻰ ﻋﻤﻮد ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ وﺳﻮف ﺗﻈﻬﺮ هﺬة اﻟﻨﻘﻂ ﻣﺮة واﺣﺪة ﻋﻠﻰ .Chart
12
ﻣﺜﺎل:
ﻣﻠﺤﻮﻇﺔ :اذا اردﻧﺎ ﻋﻨﺪ ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﺑـ Chartان ﺗﺮﺳﻢ اﻟﺼﻔﻮف ﺑﺤﻴﺚ ﻳﻜﻮن آﻞ ﺻﻒ ﻓﻰ رﺳﻢ
ﻣﺴﺘﻘﻞ ﺑﺪﻻ ﻣﻦ اﻻﻋﻤﺪة ﻧﻠﻐﻰ اﺧﺘﻴﺎر ﺧﺎﺻﻴﺔ Transpose Arrayاﻟﺨﺎﺻﺔ ﺑـ .Chart
وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartوﻧﻀﻐﻂ ﻋﻠﻰ Transpose Arrayﻻزاﻟﺔ اﻟﺴﻬﻢ اﻟﻤﻮﺟﻮد
ﻋﻠﻰ اﻟﺨﺎﺻﻴﺔ وﻧﻌﻄﻞ اﻟﺨﺎﺻﻴﺔ.
13
ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺳﻨﻠﻐﻰ ﺧﺎﺻﻴﺔ Transpose Arrayﻟـ Chartوﻟﺬﻟﻚ ﺳﻨﺰﻳﻞ داﻟﺔ Transpose 2D
Arrayاﻟﺘﻰ ﺗﺤﻮل اﻟﺼﻔﻮف اﻟﻰ اﻋﻤﺪة.
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ وﻋﺮض ﻣﺠﻤﻮﻋﺔ ﻧﻘﻂ ﻋﻠﻰ Chartﻓﺎﻧﻬﺎ ﻻ ﺗﻠﻐﻰ اﻟﻨﻘﻂ اﻟﻤﻮﺟﻮدة اﺻﻼ ﻋﻠﻰ
Chartواﻧﻤﺎ ﺗﻀﺎف اﻟﻴﻬﺎ وهﻜﺬا ...وﺳﻨﺮى ﺑﻌﺪ ﻗﻠﻴﻞ آﻴﻔﻴﺔ ﺣﺬف هﺬة اﻟﻨﻘﻂ.
وﻟﻠﺘﻮﺿﻴﺢ ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻻول ﻣﺮة ﺗﻈﻬﺮ ﺛﻼث رﺳﻮﻣﺎت ﻓﻰ آﻞ رﺳﻢ ﺧﻤﺲ ﻧﻘﻂ وﻋﻨﺪ
ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺮة اﺧﺮى ﺗﻀﺎف ﺧﻤﺲ ﻧﻘﻂ اﺧﺮى اﻟﻰ آﻞ رﺳﻢ وهﻜﺬا.
14
ﺧﺼﺎﺋﺺ : Chart
ﻳﻮﺟﺪ ﻟـ Chartﻋﺪة ﺧﺼﺎﺋﺺ و ﺳﻨﺴﺘﻌﺮض ﺑﻌﻀﻬﺎ.
: Digital Display
آﺄى Indicatorرﻗﻤﻰ ﻳﻮﺟﺪ ﻟـ Digital Display - Chartﻳﻌﺮض اﺧﺮ ﻗﻴﻤﺔ ﻇﻬﺮت ﻋﻠﻰ . Chart
وﻳﻤﻜﻦ اﻇﻬﺎر او اﺧﻔﺎء Digital Displayﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartواﻟﻀﻐﻂ ﻋﻠﻰ
Visible Items>>Digital Display
15
ﺷﺮﻳﻂ اﻧﺰﻻق ﻣﺤﻮر : ( The X Scrollbar) X
ﻳﺤﺘﻮى Chartﻋﻠﻰ ﺷﺮﻳﻂ اﻧﺰﻻق ﻋﻠﻰ ﻣﺤﻮر Xﻧﺴﺘﻄﻴﻊ ﺑﻪ اﺳﺘﻌﺮاض اﻟﻨﻘﻂ اﻟﻘﺪﻳﻤﺔ اﻟﺘﻰ ﻋﺮﺿﺖ ﻋﻠﻰ Chart
وﻟﻴﺴﺖ ﻇﺎهﺮة.
وﻳﻤﻜﻦ اﻇﻬﺎر او اﺧﻔﺎء ﺷﺮﻳﻂ اﻻﻧﺰﻻق وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartواﺧﺘﻴﺎر او
اﻟﻐﺎء اﺧﺘﻴﺎر
Visible Items>>X Scrollbar
16
ﺣﺬف ﺟﻤﻴﻊ ﻧﻘﻂ : (Clear Chart) Chart
آﻤﺎ ﻋﻠﻤﻨﺎ ان اى ﻧﻘﻂ ﻧﻌﺮﺿﻬﺎ ﻋﻠﻰ Chartﺗﻀﺎف ﻋﻠﻰ اﻟﻨﻘﻂ اﻟﻘﺪﻳﻤﺔ اﻟﻤﻮﺟﻮدة ﻋﻠﻰ .Chart
وﻟﺤﺬف ﺟﻴﻤﻊ اﻟﻨﻘﻂ ﻣﻦ ﻋﻠﻰ ) Chartاﻟﻘﺪﻳﻤﺔ واﻟﺤﺪﻳﺜﺔ(.
ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartوﻧﺨﺘﺎر
Data Operation >> Clear Chart
ﻣﻠﺤﻮﻇﺔ :
آﻤﺎ ﻧﻌﻠﻢ اﻧﻪ ﻓﻰ اﺛﻨﺎء ﻋﺪم ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻓﻬﻨﺎك ﺣﺎﻟﺘﻴﻦ او ﻧﻤﻄﻴﻦ ﻟﻠﻌﻤﻞ هﻤﺎ
Run Modeو Edit Mode
وﻓﻰ Edit Modeﻧﺴﺘﻄﻴﻊ ان ﻧﻘﻮم ﺑﺠﻤﻴﻊ ﻋﻤﻠﻴﺎت ﺗﺤﺮﻳﺮ اﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ اﺿﺎﻓﺔ Controlsودوال و ﺗﻐﻴﻴﺮ اﺑﻌﺎد
وﻏﻴﺮهﺎ وذﻟﻚ ﻋﺎدة ﻳﻜﻮن اﺛﻨﺎء ﺗﺼﻤﻴﻢ اﻟﺒﺮﻧﺎﻣﺞ.
وﻓﻰ Run Modeﻻ ﻧﺴﺘﻄﻴﻊ ﻋﻤﻞ ﻣﻌﻈﻢ ﻋﻤﻠﻴﺎت اﻟﺘﺤﺮﻳﺮ وﻳﻜﻮن VIﻓﻰ ﺣﺎﻟﺔ ﻣﺸﺎﺑﻬﺔ ﻟﺤﺎﻟﺘﻪ اﺛﻨﺎء اﻟﺘﻨﻔﻴﺬ وﻻ
ﻳﻤﻜﻦ اﻻﻧﺘﻘﺎل اﻟﻰ ﺣﺎﻟﺔ Run Modeاﻻ اذا آﺎﻧﺖ VIﻗﺎﺑﻠﺔ ﻟﻠﺘﻨﻔﻴﺬ.
وﻳﻤﻜﻦ اﻻﻧﺘﻘﺎل ﻣﻦ ﺣﺎﻟﺔ Edit Modeاﻟﻰ Run Modeواﻟﻌﻜﺲ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ Ctrl+M
او ﻣﻦ اﻟﻘﺎﺋﻤﺔ
Operate>> Change to Run Mode
17
Edit Mode اذا آﻨﺎ ﻓﻰ ﺣﺎﻟﺔ
او
Operate>> Change to Edit Mode
Run Mode اذا آﻨﺎ ﻓﻰ ﺣﺎﻟﺔ
18
وﻳﻤﻜﻦ ﺣﺬف ﺟﻤﻴﻊ ﻧﻘﻂ Chartﻓﻰ Run Modeوذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس واﺧﺘﻴﺎر
Clear Chartﻣﺒﺎﺷﺮة
19
وﻟﻌﻤﻞ ذﻟﻚ ﻧﺘﺒﻊ اﻟﺨﻄﻮات اﻻﺗﻴﺔ
-1ﻧﻘﻮم ﺑﺎدراج History Property Nodeﻟﻠـ Chartوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻋﻠﻰ Terminal
اﻟﺨﺎص ﺑﺎﻟـ Chartﻓﻰ Block Diagramواﺧﺘﻴﺎر
Crate>>Property Node>>History Data
20
-2ﻧﺠﻌﻞ Property Nodeﻟﻠﻜﺘﺎﺑﺔ ﺑﺪﻻ ﻣﻦ اﻟﻘﺮاءة وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس واﺧﺘﻴﺎر
Change to Write
-3ﻧﻨﺸﺄ ﻣﺼﻔﻮﻓﺔ ﻓﺎرﻏﺔ وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ History Data Property
Nodeواﺧﺘﻴﺎر
Create>>Constant
21
ﻣﺜﺎل :ﻳﻘﻮم هﺬا اﻟﺒﺮﻧﺎﻣﺞ ﺑﺤﺬف ﺟﻤﻴﻊ اﻟﻨﻘﻂ اﻟﺘﻰ ﻋﻠﻰ Chartﻓﻰ ﺑﺪاﻳﺔ ﺗﻨﻔﻴﺬﻩ
واﻟﻮﺿﻊ اﻟﻄﺒﻴﻌﻰ او اﻻوﻟﻰ ﻟﻠﺮﺳﻮﻣﺎت اﻧﻬﻢ ﻣﺸﺘﺮآﻴﻦ ﻓﻰ ﻣﺤﻮر .(Overlay Plots) Y
وﻳﻤﻜﻦ اﻟﺘﺒﺪﻳﻞ ﺑﻴﻨﻬﻢ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartو اﺧﺘﻴﺎر Stack plotsﻟﻠﺘﺤﻮﻳﻞ ﻣﻦ
Overlay Plotsاﻟﻰ . Stack Plots
22
.Overlay Plots اﻟﻰStack Plots ﻟﻠﺘﺤﻮﻳﻞ ﻣﻦOverlay Plots او اﺧﺘﻴﺎر
23
اﺿﺎﻓﺔ اآﺜﺮ ﻣﻦ ﺗﺪرﻳﺞ ) (Scaleﻟﻤﺤﻮر : Y
ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻋﻨﺪ ﻋﺮض اآﺜﺮ ﻣﻦ رﺳﻢ ﻋﻠﻰ Chartﺗﻜﻮن هﺬة اﻟﺮﺳﻮﻣﺎت ﺗﺨﺘﻠﻒ ﻓﻰ ﻣﺪى اﻻرﻗﺎم ﻣﻤﺎ
ﻳﺴﺘﺪﻋﻰ وﺿﻊ اآﺜﺮ ﻣﻦ ﺗﺪرﻳﺞ ﻟـ .Y
وﻻﺿﺎﻓﺔ ﺗﺪرﻳﺞ ﻟﻤﺤﻮر Yﻓﻰ Chartﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﺘﺪرﻳﺞ اﻟﻤﻮﺟﻮد ﻟﻤﺤﻮر Yوﻧﺨﺘﺎر
.Duplicate Scale
24
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﻣﻜﺎن اﻟﺘﺪرﻳﺞ ﻣﻦ ﻳﺴﺎر Chartاﻟﻰ ﻳﻤﻴﻦ Chartوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﺘﺪرﻳﺞ
واﺧﺘﻴﺎر .Swap Scale
25
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﻟﻜﻞ رﺳﻢ اﻟﺘﺪرﻳﺞ اﻟﺨﺎص ﺑﻪ وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartواﺧﺘﻴﺎر
) Propertiesﻟﻔﺘﺢ ﺻﻔﺤﺔ ﺧﺼﺎﺋﺺ (Chartواﺧﺘﻴﺎر ﺻﻔﺤﺔ اﻟﺮﺳﻮﻣﺎت .Plots
26
ﻣﻠﺤﻮﻇﺎت:
• اذا آﺎن ﻟﻤﺤﻮر Yاآﺜﺮ ﻣﻦ ﺗﺪرﻳﺞ ﻓﻴﻤﻜﻦ ﺣﺬف اى ﺗﺪرﻳﺞ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ
اﻟﺘﺪرﻳﺞ واﺧﺘﻴﺎر .Delete
• ﻳﻤﻜﻦ ارﺟﺎع آﻞ اﻟﺘﺪرﻳﺠﺎت اﻟﻰ ﻳﺴﺎر Chartوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠـ Chartواﺧﺘﻴﺎر
Advanced>>Reset Scale Layout
27
• ﻻ ﻳﻤﻜﻦ اﺿﺎﻓﺔ اى ﺗﺪرﻳﺠﺎت اﺿﺎﻓﻴﺔ اﻟﻰ ﻣﺤﻮر Xﻓﻬﻮ ﺗﺪرﻳﺞ وﺣﻴﺪ ﻟﻤﺤﻮر .X
ﺳﻌﺔ : Chart History
ﻋﻨﺪ ادراج Chartﻓﺎن ﺳﻌﺘﻪ هﻰ 1024ﻧﻘﻄﺔ اى ان ﻋﺪد اﻟﻨﻘﻂ اﻟﺘﻰ ﻳﻤﻜﻦ ان ﻳﺤﺘﻔﻆ ﺑﻘﻴﻤﻬﺎ وﻳﻤﻜﻦ ان
ﺗﺴﺘﻌﺮﺿﻬﺎ ﻋﻠﻰ ).Chartﻣﻠﺤﻮﻇﺔ ﻟﻴﺲ ﻣﻌﻨﻰ ذﻟﻚ اﻧﻚ ﻟﻦ ﺗﺴﺘﻄﻴﻊ ان ﺗﻀﻴﻒ ﻧﻘﻂ ﺟﺪﻳﺪة وﻟﻜﻦ ﻋﻨﺪ اﺿﺎﻓﺔ ﻧﻘﻂ
ﺟﺪﻳﺪة ﺳﺘﺤﺬف اﻗﺪم اﻟﻨﻘﻂ ( .
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﺳﻌﺔ Chartﺑﻘﻴﻤﺔ اﺧﺮى ﻣﻦ 10اﻟﻰ 2,147,483,647وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ Chartواﺧﺘﻴﺎر
Chart History Lengthﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﺳﻌﺔ .Chart
28
ﻣﻠﺤﻮﻇﺔ :ﻻ ﺗﺤﺪد ﺳﻌﺔ Chartﻋﺪد اﻟﻨﻘﻂ اﻟﺘﻰ ﺗﻈﻬﺮ ﻋﻠﻰ ﺷﺎﺷﺔ Chartواﻧﻤﺎ آﻠﻤﺎ آﺒﺮت ﺳﻌﺔ Chartآﻠﻤﺎ آﺒﺮ
ﻋﺪد اﻟﻨﻘﻂ اﻟﻘﺪﻳﻤﺔ اﻟﺘﻰ ﻳﺤﺘﻔﻆ ﺑﻬﺎ Chartواﻟﺘﻰ ﻳﻤﻜﻦ اﺳﺘﻌﺮاﺿﻬﺎ ﺑﻮاﺳﻄﺔ ﺷﺮﻳﻂ اﻻﻧﺰﻻق.
29
Graphs
ﺗﺮﺳﻢ Graphsاﻟﺒﻴﺎﻧﺎت اﻟﺠﺎهﺰة ﻓﻰ ﻣﺼﻔﻮﻓﺔ وﺗﻘﻮم ﺑﺮﺳﻢ اﻟﺒﻴﺎﻧﺎت ﻣﺮة واﺣﺪ وﻻ ﻳﻤﻜﻦ اﺿﺎﻓﺔ اى ﺑﻴﺎﻧﺎت اﺧﺮى
اﻟﻰ اﻟﺮﺳﻢ اﻻ ﺑﺎﻋﺎدة اﻟﺮﺳﻢ وذﻟﻚ ﻋﻜﺲ .Charts
وﺗﻮﺟﺪ اﻧﻮاﻋﻰ آﺜﻴﺮة ﻣﻦ Graphsﻣﺜﻞ Waveform Graphsو XY Graphsو Intensity
Graphsو 3D Graphsو Digital Waveform Graphsواﻧﻮاع اﺧﺮى ﺧﺎﺻﺔ.
وﺳﻮف ﻧﺘﻌﺮف ﺑﺎﻟﺘﻔﺼﻴﻞ Waveform Graphو XY Graphsﻓﻰ هﺬا اﻟﺠﺰء واﻳﻀﺎ ﺳﻨﺘﻌﺮف ﻋﻠﻰ
Intensity Graphsو 3D Graphsو Mixed Signal Graphsﻓﻰ هﺬا اﻟﺪرس.
30
Waveform Graphs
ﺗﻘﻮم Waveform Graphsﺑﺮﺳﻢ ﺑﻴﺎﻧﺎت ﻋﻠﻰ ﻣﺤﻮر Yوﻗﻴﻢ Xﻟﻬﺬة اﻟﺒﻴﺎﻧﺎت ﺗﺒﺪأ ﻣﻦ رﻗﻢ ﻣﻌﻴﻦ وﺗﺰداد
ﺑﻘﻴﻤﺔ ﺛﺎﺑﺘﻪ اى ان اﻟﻔﺮق ﺑﻴﻦ ﻗﻴﻢ Xﺛﺎﺑﺖ )ﻣﺜﻼ 4,3,2,1,0او (20,15,10,5,0اى ان اﻟﻤﺴﺎﻓﺔ ﺑﻴﻦ
اﻟﻨﻘﻂ اﻟﻤﺮﺳﻮﻣﺔ ﻋﻠﻰ ﻣﺤﻮر Xﺳﺘﻜﻮن ﻣﺘﺴﺎوﻳﺔ.
وﻓﻰ Graphﻟﻜﻞ ﻗﻴﻤﺔ Xﻗﻴﻤﺔ واﺣﺪة ﻓﻘﻂ .Y
31
وآﺄى Indicatorﺑﻤﺠﺮد ادراﺟﻪ ﻓﻰ Front Panelﻳﻈﻬﺮ ﻟﻪ Terminalﻓﻰ .Block Diagram
32
ﻣﺜﺎل :
ﺗﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﺑﺎﺳﺘﺨﺪام For Loopﺑﺎﺳﺘﺨﺪام ﺧﺎﺻﻴﺔ Auto Indexingورﺳﻢ
اﻟﻤﺼﻔﻮﻓﺔ اﻟﻤﺘﻜﻮﻧﺔ ﻋﻠﻰ .Waveform Graph
ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻧﺤﺘﺎج ﻟﺘﻐﻴﻴﺮ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺗﺒﺪأ ﺑﻬﺎ Xوﻣﻘﺪار اﻟﺰﻳﺎدة ﻟﻘﻴﻢ . X
اى ﻧﺠﻌﻞ ﻗﻴﻤﺔ X0ﺑﻘﻴﻤﺔ ﻏﻴﺮ اﻟﺼﻔﺮ واﻳﻀﺎ ان ﻧﺠﻌﻞ dXﺑﻘﻴﻤﺔ ﻏﻴﺮ .1
ﻳﻤﻜﻦ ﻋﻤﻞ ذﻟﻚ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ . Bundleوﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﻧﺠﻌﻞ ﻟﺪاﻟﺔ Bundleﺛﻼث ﻣﺪاﺧﻞ
اﻻول :ﻗﻴﻤﺔ ) X0اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺗﺒﺪأ ﺑﻬﺎ ﻗﻴﻢ .(X
اﻟﺜﺎﻧﻰ :ﻗﻴﻤﺔ ) dXﻣﻘﺪار اﻟﺰﻳﺎدة ﻓﻰ ﻗﻴﻤﺔ Xﻟﻜﻞ ﻗﻴﻤﺔ .(Y
اﻟﺜﺎﻟﺚ :اﻟﻤﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪ اﻟﻮاﺣﺪ اﻟﺘﻰ ﻧﺮﻳﺪ رﺳﻤﻬﺎ )ﻗﻴﻢ .(Y
33
ﻣﻠﺤﻮﻇﺔ :ﻟﻤﻌﻠﻮﻣﺎت اآﺜﺮ ﻋﻦ داﻟﺔ Bundleﻋﻠﻴﻚ ﺑﺎﻻﻃﻼع ﻋﻠﻰ اﻟﺪرس اﻟﺴﺎﺑﻖ Arrays and
Clusters
وهﺬا هﻮ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ .Bundle
34
وﻳﻤﻜﻨﻨﺎ ﺗﻐﻴﻴﺮ ﻗﻴﻤﺔ X0وdX
ﻣﺜﺎل 100=X0 :و 5=dX
وآﻤﺜﺎل ﻋﻤﻠﻰ :ﻟﻮ اﻧﻚ ﺗﻘﻴﺲ درﺟﺎت اﻟﺤﺮارة آﻞ ﺧﻤﺲ ﺛﻮاﻧﻰ ﻓﺎﻧﻚ ﺑﻌﺪ اﻧﺘﻬﺎء اﻟﻘﻴﺎس واﻟﺤﺼﻮل ﻋﻠﻰ
ﻣﺼﻔﻮﻓﺔ ﺑﻬﺎ ﻗﻴﻢ درﺟﺎت اﻟﺤﺮارة وﺗﺮﺳﻤﻬﺎ ﻋﻠﻰ Waveform Graphﻓﺘﺠﻌﻞ 5= dXاى ﺑﻴﻦ آﻞ
ﻗﺮاءة واﺧﺮى 5ﺛﻮاﻧﻰ.
Waveform Graphﻳﺤﺘﻮى ﻋﻠﻰ اآﺜﺮ ﻣﻦ رﺳﻢ :
ﻟﺮﺳﻢ اآﺜﺮﻣﻦ رﺳﻢ ﻣﺴﺘﻘﻞ ﻋﻠﻰ Waveform Graphﻧﻘﻮم ﺑﺘﻜﻮﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ وآﻞ ﺻﻒ ﻓﻰ
هﺬة اﻟﻤﺼﻔﻮﻓﺔ ﻳﺘﻢ رﺳﻤﻪ ﻓﻰ رﺳﻢ ﻣﺴﺘﻘﻞ .وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﻜﻮن X0=0و .dX=1
35
وﻳﻤﻜﻦ ﺗﺠﻤﻴﻊ اآﺜﺮ ﻣﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﻋﻠﻰ هﻴﺌﺔ ﺻﻔﻮف ﻓﻰ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﺑﺎﺳﺘﺨﺪام داﻟﺔ
.Build Array
ﻟﺘﻐﻴﻴﺮ ﻗﻴﻤﺔ ) X0ﻟﻘﻴﻤﺔ اﻟﺘﻰ ﺗﺒﺪأ ﺑﻬﺎ ﻗﻴﻢ (Xو ) dXﻗﻴﻤﺔ اﻟﺰﻳﺎدة ﻓﻰ ﻗﻴﻢ (Xﻟﻜﻞ رﺳﻢ.
ﻧﺴﺘﺨﺪم داﻟﺔ Bundleﻣﻊ آﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﺛﻢ ﻧﻘﻮم ﺑﺘﺠﻤﻴﻌﻢ ﺑﺪاﻟﺔ .Build Array
36
XY Graphs
ﺗﻘﻮم XY Graphsﺑﺮﺳﻢ ﻋﻼﻗﺔ ﺑﻴﻦ ﻗﻴﻢ Xو. Yﻓﻠﺮﺳﻢ اى ﻧﻘﻄﺔ ﻳﺠﺐ ﺗﺤﺪﻳﺪ ﻟﻬﺎ ﻗﻴﻤﺔ Xو .Y
و XY Graphﻣﺜﻞ Waveform Graphﻓﻰ اﻧﻪ ﻳﺘﻢ اﻟﺮﺳﻢ ﻣﺮة واﺣﺪة وﻻ ﻳﺘﻢ اﺿﺎﻓﺔ اى ﻧﻘﻂ اﻻ ﺑﺎﻋﺎدة اﻟﺮﺳﻢ.
37
وﻣﺜﻞ Chartsو Waveform Graphsﻳﻤﻜﻦ ان ﻳﺤﺘﻮى XY Graphﻋﻠﻰ رﺳﻢ واﺣﺪ او اآﺜﺮ ﻣﻦ
رﺳﻢ.
آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ : XY Graph
XY Graph -1ﻳﺤﺘﻮى ﻋﻠﻰ رﺳﻢ واﺣﺪ :
(aﺑﺠﻤﻊ ﻣﺼﻔﻮﻓﺔ ﻗﻴﻢ Xوﻣﺼﻔﻮﻓﺔ ﻗﻴﻢ Yﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ .Bundle
وﻣﺼﻔﻮﻓﺔ Xاو Yﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ذات ﺑﻌﺪ واﺣﺪ
ﻣﻠﺤﻮﻇﺔ :ﻳﺘﻢ ادراج داﻟﺔ Bundleﻣﻦ
Function Palette>Programming>>Cluster & Variant
ﻣﺜﺎل :
38
(bﺗﺠﻤﻴﻊ آﻞ ﻗﻴﻤﺔ ﻣﻦ ﻗﻴﻢ Xﻣﻊ اﻟﻘﻴﻤﺔ اﻟﻤﻘﺎﺑﻠﺔ ﻟﻬﺎ ﻣﻦ Yﻓﻰ Clusterﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ Bundle
ﺛﻢ ﻋﻤﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ هﺬة .Clusters
ﻣﺜﺎل :
39
XY Graph -2ﻳﺤﺘﻮى ﻋﻠﻰ آﺜﺮ ﻣﻦ رﺳﻢ :
ﻟﻌﺮض اآﺜﺮ ﻣﻦ رﺳﻢ ﻋﻠﻰ XY Graphﻧﻘﻮم ﺑﺘﺠﻤﻴﻊ ﻣﺼﻔﻮﻓﺔ Xﻣﻊ ﻣﺼﻔﻮﻓﺔ Yﻟﻜﻞ رﺳﻢ ﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ
Bundleآﻤﺎ ﻓﻰ ﻃﺮﻳﻘﺔ ﻋﻤﻞ رﺳﻢ واﺣﺪ ﺛﻢ ﻧﻘﻮم ﺑﺘﺠﻤﻴﻊ Clustersاﻟﻨﺎﺗﺠﺔ )اﻟﺮﺳﻮﻣﺎت( ﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ
.Build Array
ﻣﺜﺎل:
40
وﻳﺘﻢ ﺗﺤﺪﻳﺪ هﺬة Planesﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ XY Graphﺑﺎﻟﺰر اﻻﻳﻤﻦ واﺧﺘﻴﺎر Option Planesﺛﻢ ﻧﺨﺘﺎر
او ﻧﻠﻐﻰ اﺧﺘﻴﺎر Planeاﻟﺬى ﻧﺮﻳﺪﻩ اﻇﻬﺎرﻩ او اﺧﻔﺎءﻩ.
41
42
ﻣﻜﻮﻧﺎت ChartsوGraphs
ﺗﺤﺘﻮى Chartsو Graphsﻋﻠﻰ ﻣﻜﻮﻧﺎت وﺧﺼﺎﺋﺺ آﺜﻴﺮة .وﺑﻮﺳﻄﺔ هﺬة اﻟﻤﻜﻮﻧﺎت ﻧﺴﺘﻄﻴﻊ ﺗﻬﻴﺌﺔ
Chartsو Graphsﺑﺎﻟﺸﻜﻞ اﻟﺬى ﻧﺮﻳﺪﻩ.
وﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ اهﻢ هﺬة اﻟﺨﺼﺎﺋﺺ واﻟﻤﻜﻮﻧﺎت.
43
وﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﺘﺪرﻳﺞ ﻣﺒﺎﺷﺮة ﺗﻈﻬﺮ ﻟﻨﺎ هﺬة اﻟﻘﺎﺋﻤﺔ ﻣﺒﺎﺷﺮة.
44
ﺧﺎﺻﻴﺔ : AutoScale
ﺗﻔﻌﻴﻞ هﺬة اﻟﺨﺎﺻﻴﺔ ﺗﺠﻌﻞ اﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى واﻟﻘﻴﻤﺔ اﻟﻜﺒﺮى ﻟﻠﺘﺪرﻳﺞ ﺗﺘﻐﻴﺮﺗﻠﻘﺎﺋﻴﺎ ﺑﺤﻴﺚ ﻳﻜﻮن ﻣﺪى اﻟﺘﺪرﻳﺞ
هﻮ ﻣﺪى ﻗﻴﻢ اﻟﻨﻘﻂ اﻟﻤﻮﺟﻮدة ﻓﻰ Chartاو Graphﺑﺤﻴﺚ ﻳﺘﻢ اﻇﻬﺎر اﻟﻨﻘﻂ آﻠﻬﺎ ﺑﺎﻓﻀﻞ دﻗﺔ.
وآﻤﺜﺎل ﻟﻮ ان ﻣﺪى ﻗﻴﻢ Yﻟﺠﻤﻴﻊ اﻟﻨﻘﻂ ﻣﻦ 0اﻟﻰ 1ﻓﺎن ﺗﺪرﻳﺞ ﻣﺤﻮر Yﻳﺎﺧﺬ اﻟﻘﻴﻢ ﻣﻦ 0اﻟﻰ 1ﻓﻰ
ﺣﺎﻟﺔ ﺗﻔﻌﻴﻞ AutoScaleﻟﻤﺤﻮر .Y
45
وﺧﺎﺻﻴﺔ AutoScaleﻣﻔﻌﻠﺔ ﺗﻠﻘﺎﺋﻴﺎ ﻓﻰ Graphsوﻏﻴﺮ ﻣﻔﻌﻠﺔ ﺗﻠﻘﺎﺋﻴﺎ ﻓﻰ .Chart
وﻳﻤﻜﻦ ان ﺗﺆدى ﺧﺎﺻﻴﺔ AutoScaleاﻟﻰ ﺑﻄﻰء ﻓﻰ ﺗﺤﺪﻳﺚ اﻟﻨﻘﻂ ﻋﻠﻰ Chartاو Graphوذﻟﻚ
ﻻﻧﻬﺎ ﺗﺤﺘﺎج اﻟﻰ اﻋﺎدة ﺣﺴﺎب اﻟﺘﺪرﻳﺞ وﺗﻌﺪﻳﻠﻪ ﺑﺤﻴﺚ ﻳﻨﺎﺳﺐ اﻟﺘﺤﺪﻳﺚ.
وﻋﻨﺪ ﻋﺪم ﺗﻔﻌﻴﻞ او ﺗﻌﻄﻴﻞ ﺧﺎﺻﻴﺔ AutoScaleﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ اﻟﺘﺪرﻳﺞ ﻟﻤﺤﻮر Xاو ﻣﺤﻮر Yوذﻟﻚ
ﺑﺎﺳﺘﺨﺪام اﻻداة Operatingاو اﻻداة Labelingﻟﻜﺘﺎﺑﺔ اﻟﻘﻴﻢ اﻟﺠﺪﻳﺪة .وﻋﺎدة ﻳﺘﻢ ذﻟﻚ ﺑﻜﺘﺎﺑﺔ اﻟﻘﻴﻤﺔ
اﻟﺼﻐﺮى ﻟﻠﺘﺪرﻳﺞ او اﻟﻘﻴﻤﺔ اﻟﻜﺒﺮى ﻟﻠﺘﺪرﻳﺞ.
46
ﺗﺆدى هﺬة اﻟﺨﺎﺻﻴﺔ اﻟﻰ ان اﻟﻘﻴﻢ اﻟﺼﻐﺮى واﻟﻜﺒﺮى ﻟﻠﺘﺪرﻳﺞ ﺗﺄﺧﺬ ﻣﻀﺎﻋﺎﻓﺎت اﻟﺰﻳﺎدة ﻓﻰ اﻟﺘﺪرﻳﺞ.
ﻓﻤﺜﻼ ﻟﻮ ان اﻟﺰﻳﺎدة ﻓﻰ اﻟﺘﺪرﻳﺞ ﺗﺴﺎوى ) 10اى ان اﻟﺘﺪرﻳﺞ آﻞ (10ﻓﺎن اﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى و اﻟﻘﻴﻤﺔ
اﻟﻜﺒﺮى ﻟﻠﺘﺪرﻳﺞ ﺗﺴﺎوى ﻣﻀﺎﻋﻔﺎت .10
اﻻﺧﺘﻴﺎر : Formatting
47
ﻋﻨﺪ اﺧﺘﻴﺎر اﻻﺧﺘﻴﺎر Formattingﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﺧﺼﺎﺋﺺ Graphاو Chartﻋﻠﻰ ﺻﻔﺤﺔ
Format and Precisionوﻣﻦ ﺧﻼل هﺬة اﻟﺼﻔﺤﺔ ﻧﺴﺘﻄﻴﻊ ﺿﺒﻂ اﻻرﻗﺎم اﻟﻤﺴﺘﺨﺪﻣﺔ ﻓﻰ اﻟﺘﺪرﻳﺞ
ﻣﻦ ﺣﻴﺚ اﻟﻨﻮع و ﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ.
48
وهﺬة اﻟﺼﻔﺤﺔ ﺑﻬﺎ ﻋﺪة ﺧﺼﺎﺋﺺ ﻟﻠﺘﺪرﻳﺞ ﻳﻤﻜﻦ ﺗﻌﺪﻳﻠﻬﺎ وهﺬة اﻟﺨﺼﺎﺋﺺ هﻰ :
:Show Scale Labelﻻﻇﻬﺎر او اﺧﻔﺎء اﻻﺳﻢ اﻟﺬى ﻳﻈﻬﺮ ﻋﻠﻰ اﻟﺘﺪرﻳﺞ .Scale Label
49
: Show Scaleﻻﻇﻬﺎر او اﺧﻔﺎء اﻟﺘﺪرﻳﺞ .
50
: Invertedﻟﻌﻜﺲ اﻟﺘﺪرﻳﺞ ﺑﺤﻴﺚ ﺗﻜﻮن اﻟﻘﻴﻤﺔ اﻟﻌﻈﻤﻰ ﻋﻠﻰ اﻟﻴﺴﺎر واﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى ﻋﻠﻰ اﻟﻴﻤﻴﻦ
ﺑﺎﻟﻨﺴﺒﺔ ﻟﻤﺤﻮر Xاو ان ﺗﻜﻮن اﻟﻘﻴﻤﺔ اﻟﻌﻈﻤﻰ ﻻﺳﻔﻞ واﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى ﻻﻋﻠﻰ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻤﺤﻮر .Y
51
52
:The Grid Style and Colors
ﻟﺘﺤﺪﻳﺪ ﺷﻜﻞ واﻟﻮان . Grid Linesو Gird Linesهﻰ اﻟﺨﻄﻮط اﻟﻄﻮﻟﻴﺔ واﻟﻌﺮﺿﻴﺔ اﻟﺘﻰ ﺗﻈﻬﺮ ﻓﻰ
Chartوهﻰ ﻣﺜﻞ ﺧﻄﻮط اﻟﺮﺳﻢ اﻟﺒﻴﺎﻧﻰ وﺧﻄﻮط Grid Linesاﻟﺘﻰ ﺗﻈﻬﺮ ﻋﻨﺪ Major Ticks
ﺗﺴﻤﻰ Major GridوGrid Linesاﻟﺘﻰ ﺗﻈﻬﺮ ﻋﻨﺪ Minor Ticksﺗﺴﻤﻰ .Minor Gridوﻳﻤﻜﻦ
اﺧﺘﻴﺎر اى ﻣﻦ هﺬة اﻟﺨﻄﻮط اﻟﺘﻰ ﺗﻈﻬﺮ او اﺧﻔﺎؤهﺎ ﺟﻤﻴﻌﺎ .واﻳﻀﺎ ﻳﻤﻜﻦ اﺧﺘﻴﺎر ﻟﻮن هﺬة اﻟﺨﻄﻮط.
53
:Scaling Factors
ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﻳﺒﺪأ ﻋﻨﺪهﺎ ﺗﺪرﻳﺞ ﻣﺤﻮر ( X0) Xوذﻟﻚ ﺑﺘﺤﺪﻳﺪ ﻗﻴﻤﺔ . Offset
واﻳﻀﺎ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﻗﻴﻤﺔ اﻟﺰﻳﺎدة ﻓﻰ ﺗﺪرﻳﺞ ﻣﺤﻮر (dX) Xوذﻟﻚ ﺑﺘﺤﺪﻳﺪ ﻗﻴﻤﺔ .Multiplier
وﻳﻈﻬﺮ ﺑﻪ اﺳﻤﺎء اﻟﺘﺪرﻳﺠﺎت اﻟﻤﻮﺟﻮدة ﺑـ Chartاو Graphوﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ هﺬا اﻻﺳﻢ ﻣﻦ ﺧﻼﻟﻪ .
54
ﻣﻠﺤﻮﻇﺔ :اذا آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ ﺗﺪرﻳﺠﻴﻦ ﻳﻤﻜﻦ ﻣﺪ Scale Legendﺑﻮاﺳﻄﺔ اﻻداة Positioning
ﻻﻇﻬﺎر اﻟﺘﺪرﻳﺠﺎت اﻻﺧﺮى .
ﻟﻠﻮﺻﻮل اﻟﻰ ﺧﺼﺎﺋﺺ ﺗﺪرﻳﺞ ﻣﺤﻮر وﻟﻠﻮﺻﻮل اﻟﻰ ﻗﺎﺋﻤﺔ ﺧﺼﺎﺋﺼﺔ اﻟﺘﺪرﻳﺞ ﻧﻀﻐﻂ ﻋﻠﻰ اﻟﺰرار
ﻟﻠﻮﺻﻮل اﻟﻰ ﺧﺼﺎﺋﺺ ﺗﺪرﻳﺞ ﻣﺤﻮر . Y Xاو
وهﺬة اﻟﺨﺼﺎﺋﺺ هﻰ اﻟﺨﺼﺎﺋﺺ اﻟﺘﻰ ﻋﺮﺿﻨﺎهﺎ ﻣﻦ ﻗﺒﻞ وﻟﻜﻦ وﺿﻌﺖ هﻨﺎ ﻟﺴﺮﻋﺔ اﻟﻮﺻﻮل اﻟﻴﻬﺎ.
. وﻳﻤﻜﻦ ﺗﻔﻌﻴﻞ ﺧﺎﺻﻴﺔ AutoScaleﻟﻜﻞ ﺗﺪرﻳﺞ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰرار
ﻓﺎن ﺧﺎﺻﻴﺔ AutoScaleﺗﻜﻮن ﻣﻔﻌﻠﺔ وﻳﻜﻮن اﻟﺰرار وﻋﻨﺪﻣﺎ ﻳﻜﻮن هﺬا اﻟﺮزار ﺑﻬﺬا اﻟﺸﻜﻞ
. اﻟﻤﺠﺎور ﺑﻬﺬا اﻟﺸﻜﻞ
ﻓﺎن ﺧﺎﺻﻴﺔ AutoScaleﺗﻜﻮن ﻏﻴﺮ ﻣﻔﻌﻠﺔ وﻳﻜﻮن اﻟﺰرار وﻋﻨﺪﻣﺎ ﻳﻜﻮن هﺬا اﻟﺮزار ﺑﻬﺬا اﻟﺸﻜﻞ
. اﻟﻤﺠﺎور ﺑﻬﺬا اﻟﺸﻜﻞ
55
: The Plot Legend
ﻳﺴﺘﺨﺪم ﻓﻰ ﺗﺤﺪﻳﺪ ﺧﺼﺎﺋﺺ اﻟﺮﺳﻢ ﻣﺜﻞ اﺳﻢ اﻟﺮﺳﻢ و ﻟﻮﻧﻪ وﺷﻜﻞ اﻟﺨﻂ ﻓﻴﻪ وﺷﻜﻞ وﻟﻮن اﻟﻨﻘﻂ اﻟﻤﺴﺘﺨﺪﻣﺔ
ﻓﻴﻪ.
وﻋﻨﺪ ادراج Chartاو Graphﻳﻈﻬﺮ رﺳﻢ واﺣﺪ ﻓﻰ Plot Legendواذا آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ رﺳﻢ
ﻋﻠﻰ Chartاو Graphﻳﻤﻜﻦ ﻣﺪ Plot Legendﺑﻮاﺳﻄﺔ اﻻداة Positioningﺑﺤﻴﺚ ﺗﻈﻬﺮ ﺑﺎﻗﻰ
اﻟﺮﺳﻮﻣﺎت ﻓﻰ .Plot Legend
ﻳﺴﻤﻰ اﻟﺮﺳﻢ ﻓﻰ Plot Legendﺑﻜﻠﻤﺔ Plotﺛﻢ رﻗﻢ ﻳﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ ﻟﻠﺮﺳﻢ ﻣﺜﻞ ) Plot 0و (Plot 1
وﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ هﺬا اﻻﺳﻢ ﺑﺎﺳﺘﺨﺪام اﻻداة Labelingﻣﺜﻞ اى Labelﻓﻰ .LabVIEW
ﻋﻨﺪ ﺗﻐﻴﻴﺮ اﻻﺳﻢ ﻓﺎن اﺑﻌﺎد Plot Legendﺗﺘﻐﻴﺮ ﺑﺤﻴﺚ ﺗﺴﻊ اآﺒﺮ اﺳﻢ وهﺬة هﻰ ﺧﺎﺻﻴﺔ Plot
.Legend Autosizingوﻳﻤﻜﻦ اﻟﻐﺎء هﺬة اﻟﺨﺎﺻﻴﺔ او ﺗﻔﻌﻠﻴﻬﺎ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﻋﻠﻰ Chartاو
Graphواﺧﺘﻴﺎر او اﻟﻐﺎء اﺧﺘﻴﺎر .Plot Legend Autosizing
56
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ﺗﺤﺮﻳﻚ Chartاو Graphﻳﺘﺤﺮك ﻣﻌﻬﺎ Plot Legendوﻟﻜﻦ ﻳﻤﻜﻦ اﺧﺘﻴﺎر Plot
Legendوﺗﺤﺮﻳﻜﻬﺎ ﻣﻨﻔﺮدا ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى ﺗﺮﻳﺪﻩ.
وﻟﻠﻮﺻﻮل اﻟﻰ ﺧﺼﺎﺋﺺ اﻟﺮﺳﻢ او ﺗﻌﺪﻳﻠﻬﺎ ﻧﻀﻐﻂ ﻋﻠﻰ Plot Legendﺑﻮاﺳﻄﺔ اﻻداة Operating
ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻗﺎﺋﻤﺔ ﺑﺎﻟﺨﺼﺎﺋﺺ وﻳﻤﻜﻦ اﻳﻀﺎ اﻇﻬﺎر اﻟﻘﺎﺋﻤﺔ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻴﻪ.
وﺗﻮﺟﺪ ﻟﻜﻞ رﺳﻢ ﻓﻰ Plot Legendﻗﺎﺋﻤﺔ ﺧﺎﺻﺔ ﺑﻪ
57
وﺳﻨﺘﻌﺮف ﻋﻠﻰ هﺬة اﻟﺨﺼﺎﺋﺺ ﺑﺎﻟﺘﻔﺼﻴﻞ.
اﻻﺧﺘﻴﺎر : Common Plot
وﻳﺘﻴﺘﺢ هﺬا اﻻﺧﺘﻴﺎر ﺗﺤﺪﻳﺪ ﺷﻜﻞ اﻟﺮﺳﻢ ﻣﻦ ﺑﻴﻦ 6اﺷﻜﺎل وﻳﺘﻤﻴﺰ هﺬة اﻻﺧﺘﻴﺎر ﺑﺘﺤﺪﻳﺪ ﺷﻜﻞ اﻟﻨﻘﻂ و اﻟﺨﻂ
و آﻴﻔﻴﺔ رﺑﻂ اﻟﻨﻘﻂ ﺑﺒﻌﺾ ﻣﺮة واﺣﺪ ﻣﻦ ﺧﻼل اﺧﺘﻴﺎر اﻟﺸﻜﻞ .
58
اﻻﺧﺘﻴﺎر : Color
59
اﻻﺧﺘﻴﺎر :Line Width
ﻟﺘﺤﺪﻳﺪ ﺳﻤﻚ اﻟﺨﻂ ﻓﻰ اﻟﺮﺳﻢ.
اﻻﺧﺘﻴﺎر :Anti-Aliased
ﻳﺠﻌﻞ هﺬا اﻻﺧﺘﻴﺎر اﻟﺮﺳﻢ اآﺜﺮ اﻧﺴﻴﺎﺑﻴﺔ .وﻳﺤﺘﺎج هﺬا اﻻﺧﺘﻴﺎر ﺑﻌﺾ اﻟﺤﺴﺎﺑﺎت اﻻﺿﺎﻓﻴﺔ ﻟﺠﻌﻞ اﻟﺮﺳﻢ
اآﺜﺮ اﻧﺴﻴﺎﺑﻴﺔ ﻣﻤﺎ ﻗﺪ ﻳﺆدى اﻟﻰ ﺑﻌﺾ اﻟﺒﻄﻰء وﺗﻘﻠﻴﻞ اﻟﻜﻔﺎءة.
60
اﻻﺧﺘﻴﺎر : Bar Plots
ﻳﻨﺸﻰء هﺬا اﻻﺧﺘﻴﺎر اﻋﻤﺪة ﻋﻨﺪ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﺮﺳﻢ هﺬة اﻻﻋﻤﺪة ﻳﻤﻜﻦ ان ﺗﻜﻮن اﻓﻘﻴﺔ او رأﺳﻴﺔ
وﻳﻤﻜﻦ ان ﻳﻜﻮن ﻋﺮﺿﻬﺎ %100او %75او %1وهﺬة اﻻﻋﻤﺪة ﻳﻤﻜﻦ ان ﺗﻜﻮن ﻓﺎرﻏﺔ او ﻣﻈﻠﻠﺔ .
61
62
اﻻﺧﺘﻴﺎر :Interpolation
ﻳﺤﺪد هﺬا اﻻﺧﺘﻴﺎر آﻴﻔﻴﺔ اﻟﺘﻮﺻﻴﻞ ﺑﻴﻦ اﻟﻨﻘﻂ ﻓﻴﻤﻜﻦ ان ﺗﻜﻮن اﻟﻨﻘﻂ ﺑﺪون ﺗﻮﺻﻴﻞ او ﻳﺘﻢ اﻟﺘﻮﺻﻴﻞ ﺑﻴﻨﻬﺎ
ﺑﺨﻂ ﻣﺴﺘﻘﻴﻢ او اﻟﺘﻮﺻﻴﻞ ﺑﻴﻨﻬﺎ ﺑﺰاوﻳﺔ ﻗﺎﺋﻤﺔ ﺑﻄﺮق ﻣﺨﺘﻠﻔﺔ ﻣﻤﺎ ﻳﻔﻴﺪ ﻓﻰ ﻋﻤﻞ ﻣﺎ ﻳﺴﻤﻰ .Histogram
63
اﻻﺧﺘﻴﺎرﻳﻦ X Scaleو : Y Scale
اذا آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ ﺗﺪرﻳﺞ ﻟﻠﻤﺤﻮر .ﻓﻴﺘﻢ ﺗﺤﺪﻳﺪ ﺑﻬﺬﻳﻦ اﻻﺧﺘﻴﺎرﻳﻦ اﻟﺘﺪرﻳﺞ اﻟﺨﺎص ﺑﺎﻟﺮﺳﻢ.
64
:The Graph Palette
زرار : Pan
ﻓﻰ هﺬا اﻟﻨﻤﻂ ﻳﻤﻜﻦ ﺗﺤﺮﻳﻚ اﻟﺠﺰء اﻟﺨﺎص ﺑﺎﻟﺮﺳﻢ ﻻﻇﻬﺎر اى ﺟﺰء ﻣﻦ اﻟﺮﺳﻢ ﻏﻴﺮ ﻇﺎهﺮ .وذﻟﻚ
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺠﺰء اﻟﻈﺎهﺮ ﻣﻦ اﻟﺮﺳﻢ ﺛﻢ اﻟﺴﺤﺐ وﻳﺸﺒﻪ هﺬا اﻟﻨﻤﻂ اﺳﺘﺨﺪام ﺷﺮﻳﻂ اﻻﻧﺰﻻق.
65
زرار اﻟﺘﻜﺒﻴﺮاو اﻟﺘﺼﻐﻴﺮ ):(Zooming
ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ هﺬا اﻟﺰرار ﺗﻈﻬﺮ ﻟﻨﺎ ﻗﺎﺋﻤﺔ ﺑﻬﺎ ﺧﻴﺎرات ﻟﻄﺮق ﻋﻤﻞ ﺗﻜﺒﻴﺮ ﺟﺰء ﻣﻦ اﻟﺮﺳﻢ .
66
اﻟﺘﻜﺒﻴﺮ ﺑﻮاﺳﻄﺔ ﻣﺴﺘﻄﻴﻞ ﻋﻠﻰ ﻣﺤﻮر :Y
ﻳﺘﻢ اﺧﺘﻴﺎر ﺟﺰء ﻣﻦ اﻟﺮﺳﻢ ﻟﻠﺘﻜﺒﻴﺮ ﺑﺮﺳﻢ ﻣﺴﺘﻄﻴﻞ ﺣﻮل ﻣﺤﻮر Yﻓﻘﻂ ﻓﺘﺪرﻳﺞ ﻣﺤﻮر Xﻟﻦ ﻳﺘﻐﻴﺮ.
67
اﻟﺘﻜﺒﻴﺮ ﺣﻮل ﻧﻘﻄﺔ :
ﻳﺘﻢ اﻟﺘﻜﺒﻴﺮ ﺣﻮل ﻧﻘﻄﺔ ﻣﻌﻴﻨﺔ ﻓﻠﻮ ﺗﻢ اﻟﻀﻐﻂ ﻋﻠﻰ اى ﻧﻘﻄﺔ ﺳﻴﺤﺪث ﺣﻮﻟﻬﺎ ﺗﻜﺒﻴﺮ وﺳﺘﺴﺘﻤﺮ ﻋﻤﻠﻴﺔ اﻟﺘﻜﺒﻴﺮ
ﺣﺘﻰ ﻳﺘﻢ اذاﻟﺔ اﻟﻀﻐﻂ.
68
: Graph Cursors
ﺗﺤﺘﻮى Graphsﻋﻠﻰ Cursorsﻟﺘﺤﺪﻳﺪ ﺑﻴﺎﻧﺎت اﻟﻨﻘﻂ ﻋﻠﻰ Graphﺑﻄﺮﻳﻘﺔ ﺗﻔﺎﻋﻠﻴﺔ .وﻳﺘﻜﻮن
Cursorﻣﻦ ﺗﻘﺎﻃﻊ ﺧﻂ رأﺳﻰ ﻟﻪ ﻗﻴﻤﺔ ﻋﻠﻰ ﻣﺤﻮر Xوﺧﻂ اﻓﻘﻰ ﻟﻪ ﻗﻴﻤﺔ ﻋﻠﻰ ﻣﺤﻮر .Y
69
آﻴﻔﻴﺔ اﺿﺎﻓﺔ Cursorاﻟﻰ Graphاو :Cursor Legend
ﻋﻨﺪ اﻇﻬﺎر Cursor Legendﻻول ﻣﺮة ﻓﺎﻧﻪ ﻳﻜﻮن ﻓﺎرﻏﺎ .وﻻﺿﺎﻓﺔ Cursorﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ
ﻟﻠﻤﺎوس ﻋﻠﻰ Cursor Legendوﻧﺨﺘﺎر Create Cursorﺛﻢ ﻧﺨﺘﺎر ﻧﻮع . Cursor
70
وهﻨﺎك ﺛﻼث اﻧﻮاع ﻣﻦ Cursorsهﻰ :
¾ : Freeوهﻰ ان Cursorﻳﻤﻜﻦ ﺗﺤﺮﻳﻜﻪ اﻟﻰ اى ﻣﻜﺎن ﻋﻠﻰ Graphﺑﺪون اﻻرﺗﺒﺎط ﺑﺎى ﻧﻘﻂ.
¾ : Single Plotوهﻰ ان Cursorﻳﻜﻮن ﻣﺮﺗﺒﻂ ﺑﻨﻘﻂ رﺳﻢ واﺣﺪ وﻻ ﻳﻤﻜﻦ ﺗﺤﺮﻳﻜﻪ اﻻ اﻟﻰ
اﻣﻜﺎن ﻧﻘﻂ هﺬا اﻟﺮﺳﻢ.
¾ : Multi-Plotهﺬا اﻟﻨﻮع ﻏﻴﺮ ﻣﺘﺎح اﻻ ﻟـ Mixed Signal Graphsوﺳﻴﺄﺗﻰ ﺷﺮﺣﻬﺎ ﻓﻰ
ﻧﻬﺎﻳﺔ اﻟﺪرس.
ﻻ ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﻧﻮع Cursorﺑﻌﺪ اﺿﺎﻓﺘﻪ وﻟﻌﻤﻞ ذﻟﻚ ﻳﺠﺐ اوﻻ ﺣﺬﻓﻪ ﺛﻢ اﺿﺎﻓﺘﻪ ﻣﻦ ﺟﺪﻳﺪ ﺑﺎﻟﻨﻮع اﻟﻤﺮاد.
اﻋﺎدة ﺗﺴﻤﻴﺔ : Cursor
ﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ اﺳﻢ Cursorﺑﺎﺳﺘﺨﺪام اﻻداة Labelingﻣﺜﻞ ﺗﻌﺪﻳﻞ اى Labelﻓﻰ .LabVIEW
ﺗﺤﺮﻳﻚ :Cursor
-1ﺗﺤﺮﻳﻚ Cursorﺑﺎﺳﺘﺨﺪام اداة اﻟﺘﺤﺮﻳﻚ
71
ﻧﺠﻌﻞ اوﻻ Cursorاﻟﺬى ﻧﺮﻳﺪ ﺗﺤﺮﻳﻜﻪ ﻧﺸﻄﺎ ﺑﺎن ﻧﻀﻐﻂ ﺑﺎﻻداة Operatingﻋﻠﻰ اﻟﺸﻜﻞ اﻟﻤﻌﻴﻦ اﻟﺬى
ﺑﺠﻮار اﻻﺳﻢ ﺣﺘﻰ ﻳﻜﻮن ﻣﻈﻠﻼ.
ﻳﻤﻜﻦ ﺟﻌﻞ اآﺜﺮ ﻣﻦ Cursorﻧﺸﻄﺎ.
ﺛﻢ ﻧﺴﺘﺨﺪم اداة اﻟﺘﺤﺮﻳﻚ ﻓﻰ ﺗﺤﺮﻳﻚ Cursorsاﻟﻨﺸﻄﺔ ﻓﻰ اى اﺗﺠﺎﻩ ﻻﻋﻠﻰ او ﻻﺳﻔﻞ او ﻟﻠﻴﻤﻴﻦ او
اﻟﺸﻤﺎل ﻓﻬﻰ ﻣﻘﺴﻤﺔ اﻟﻰ ارﺑﻌﺔ زرارﻳﺮ آﻞ زرار ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻴﻪ ﻟﻠﺘﺤﺮﻳﻚ ﻓﻰ اﺗﺠﺎﻩ ﻣﻌﻴﻦ.
72
-2ﺑﺎﺳﺘﺨﺪام ﻣﺆﺷﺮ اﻟﻤﺎوس وذﻟﻚ ﺑﻮﺿﻊ اﻟﻤﺆﺷﺮ ﻋﻠﻰ Cursorﺛﻢ اﻟﻀﻐﻂ وﺗﺤﺮﻳﻚ Cursorاﻟﻰ
اﻟﻤﻜﺎن اﻟﺬى ﺗﺮﻳﺪﻩ او ﺑﻮﺿﻊ ﻣﺆﺷﺮ اﻟﻤﺎوس ﻋﻠﻰ اﻟﺨﻂ اﻻﻓﻘﻰ او اﻟﺮأﺳﻰ ﺛﻢ اﻟﻀﻐﻂ وﺗﺤﺮﻳﻚ Cursor
اﻣﺎ اﻓﻘﻴﺎ او رأﺳﻴﺎ وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﻟﻴﺲ ﺿﺮورﻳﺎ ان ﻳﻜﻮن ﻧﺸﻄﺎ.
ﻣﻠﺤﻮﻇﺔ :ﻳﺘﻐﻴﺮ ﺷﻜﻞ ﻣﺆﺷﺮ اﻟﻤﺎوس ﻋﻨﺪ وﺿﻌﻬﺎ ﻋﻠﻰ Cursorاو اﺣﺪ اﻟﺨﻄﻮط ﻣﻤﺎ ﻳﺪل ﻋﻠﻰ اﻣﻜﺎﻧﻴﺔ
اﻟﺘﺤﺮﻳﻚ.
ﻻ ﻳﻤﻜﻦ ﺗﺤﺮﻳﻚ Cursorاﻟﻤﺮﺗﺒﻂ ﺑﻨﻘﻂ رﺳﻢ اﻻ اﻟﻰ اﻣﻜﺎن ﻧﻘﻂ هﺬا اﻟﺮﺳﻢ.
-3ﻳﻤﻜﻦ وﺿﻊ Cursorﻓﻰ اﻟﻤﻜﺎن اﻟﺬى ﻧﺮﻳﺪﻩ ﺑﺘﻐﻴﻴﺮ ﻗﻴﻤﺔ Xو Yﻟﻪ ﻓﻰ Cursor Legendوذﻟﻚ
ﺑﻮاﺳﻄﺔ اﻻداة .Labeling
ﺧﺼﺎﺋﺺ :Cursor
ﺗﻮﺟﺪ ﻟـ Cursorﻋﺪة ﺧﺼﺎﺋﺺ آﺎﻟﻠﻮن وﺷﻜﻞ Cursorوﺳﻤﻚ اﻟﺨﻂ وﺷﻜﻠﻪ .
73
وﻟﻠﻮﺻﻮل اﻟﻰ هﺬة اﻟﺨﺼﺎﺋﺺ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﺳﻢ Cursorﺛﻢ .Attributes
74
75
آﻤﺎ ﻳﻤﻜﻦ اﻇﻬﺎر اﺳﻢ Cursorﻋﻠﻰ Graph
اذا آﺎن هﻨﺎك اآﺜﺮ ﻣﻦ رﺳﻢ ﻋﻠﻰ Graphوهﻨﺎك Cursorﻣﺮﺗﺒﻂ ﺑﺮﺳﻢ ﻣﻌﻴﻦ ﻳﻤﻜﻦ ان ﻧﺠﻌﻞ اﻟﺮﺳﻢ
ﻳﺮﺗﺒﻂ ﺑﺮﺳﻢ اﺧﺮ .
76
ﻳﻤﻜﻦ ﺣﺬف Cursorوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﺳﻤﻪ ﻓﻰ Cursor Legendﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس
واﺧﺘﻴﺎر .Delete
77
اﺿﺎﻓﺔ Annotationاﻟﻰ : Graph
اذا آﻨﺎ Edit Modeﻧﻀﻐﻂ ﻋﻠﻰ Graphﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس وﻧﺨﺘﺎر Data Operationsﺛﻢ
Create Annotationﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﺻﻐﻴﺮة ﺑﻬﺎ ﺧﺼﺎﺋﺺ Annotationاﻟﺬى ﻧﺮﻳﺪﻩ.
واذا آﻨﺎ ﻓﻰ Run Modeﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Graphوﻧﺨﺘﺎر Create Annotation
ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﺻﻐﻴﺮة ﺑﻬﺎ ﺧﺼﺎﺋﺺ Annotationاﻟﺬى ﻧﺮﻳﺪﻩ.
78
ﻣﻠﺤﻮﻇﺔ :ﻟﻠﺘﺤﻮﻳﻞ ﻣﻦ Edit Modeاﻟﻰ Run Modeو اﻟﻌﻜﺲ ﻧﻀﻐﻂ .Ctrl + M
ﻳﻤﻜﻦ ﺗﺤﺮﻳﻚ Cursorاﻟﺨﺎص ﺑـ Annotationﺑﻮاﺳﻄﺔ اﻟﻤﺆﺷﺮ وذﻟﻚ ﺣﺴﺐ ﻧﻮﻋﻪ ﻓﺎذا آﺎن Free
ﻓﻴﻤﻜﻦ ﺗﺤﺮﻳﻚ اﻟﻰ اى ﻣﻜﺎن ﻋﻠﻰ Graphواذا آﺎن ﻣﺘﺮﺑﻂ ﺑﺮﺳﻢ او اآﺜﺮ ﻓﻴﻤﻜﻦ ﺗﺤﺮﻳﻜﻪ ﻋﻠﻰ اﻟﻨﻘﻂ ﻓﻘﻂ
وﻋﻨﺪ ﺗﺤﺮﻳﻚ Cursorﻳﺘﺤﺮك ﻣﻌﻪ اﻟﺴﻬﻢ واﻻﺳﻢ ﻣﻌﺎ.
وﻳﻤﻜﻦ ﺗﺤﺮﻳﻚ اﻻﺳﻢ ﻓﻘﻂ ﺑﻮاﺳﻄﺔ ﻣﺆﺷﺮ اﻟﻤﺎوس وﺳﻴﻈﻞ اﻟﺴﻬﻢ ﻳﺮﺑﻂ ﺑﻴﻦ اﻻﺳﻢ و .Cursor
79
: Annotation ﺣﺬف
واﺧﺘﻴﺎرGraph ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰAnnotation ﻳﻤﻜﻦ ﺣﺬف ﺟﻤﻴﻊ
Data Operations >> Delete All Annotations
Edit Mode وذﻟﻚ ﻓﻰ ﺣﺎﻟﺔ
80
Intensity Charts and Graphs
ﺷﺎهﺪﻧﺎ آﻴﻒ ﺗﺴﺘﺨﺪم Chartsو Graphsﻓﻰ رﺳﻢ اﻟﺮﺳﻮﻣﺎت ﻓﻰ ﺑﻌﺪﻳﻦ Xو .Yﻓﻤﺎذا اذا اردﻧﺎ ان ﻧﻤﺜﻞ
او ﻧﺮﺳﻢ رﺳﻢ ﻓﻰ ﺛﻼث اﺑﻌﺎد Xو YوZ؟
ﻳﺴﺘﺨﺪم Intensity Chartsو Intensity Graphsﻓﻰ ﺗﻤﺜﻴﻞ اﻟﺒﻌﺪ اﻟﺜﺎﻟﺚ Zﻋﻠﻰ هﻴﺌﺔ اﻟﻮان .
ﻓﻜﻞ ﻟﻮن ﻳﺤﺪد ﻟﻪ رﻗﻢ ﻣﻦ 0اﻟﻰ .255وﻳﻜﻮن اﻟﻠﻮن ﻓﻰ هﺬة اﻟﺤﺎﻟﺔ اﻟﺒﻌﺪ اﻟﺜﺎﻟﺚ .Z
وﻳﻤﻜﻦ ان ﺗﺴﺘﺨﺪم هﺬة اﻟﻄﺮﻳﻘﺔ ﻓﻰ اﻳﻀﺎح اﻟﺘﻮزﻳﻌﺎت ﻣﺜﻞ ﺗﻮزﻳﻌﺎت درﺟﺎت اﻟﺤﺮارة.
ﻳﻮﺟﺪ Color Scaleﻣﻊ Chartsو Graphsﻳﻮﺿﺢ ﻗﻴﻢ اﻻﻟﻮان وﻳﻌﺘﺒﺮ دﻟﻴﻼ ﻟﻘﻴﻢ اﻻﻟﻮان وﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ
هﺬة اﻟﻘﻴﻢ آﻤﺎ ﺳﻨﺮى.
واﻟﻔﺮق ﺑﻴﻦ Intensity Chartو Intensity Graphآﻤﺎ هﻮ اﻟﻔﺮق ﺑﻴﻦ Chartsو Graphsاﻟﻌﺎدﻳﻴﻦ .
ﻓـ Chartﻳﻈﻬﺮ اﻟﻘﻴﻢ اﻟﺠﺪﻳﺪة اﻟﻤﻀﺎﻓﺔ ﻣﻊ اﻟﻘﻴﻢ اﻟﻘﺪﻳﻤﺔ اﻣﺎ Graphsﺗﻈﻬﺮ اﻟﺮﺳﻮﻣﺎت ﻣﺮة واﺣﺪة
وﻋﻨﺪ اﻟﺮﺳﻢ ﻋﻠﻴﻬﺎ ﻳﺘﻢ ازاﻟﺔ اى رﺳﻮﻣﺎت ﻗﺪﻳﻤﺔ ﻋﻠﻴﻬﺎ.
81
:Intensity Graph and Charts آﻴﻔﻴﺔ ادراج
ﻣﻦIntensity Graph and Charts ﻳﺘﻢ ادراج
Controls Palette>>Modern>>Graphs
82
83
:Color Scale
ﺗﻮﺟﺪ Markersﻋﻠﻰ Scale Colorsوهﺬة Markersهﻰ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻋﻠﻰ .Scale Color
وﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ هﺬة اﻟﻘﻴﻢ ﺑﻮاﺳﻄﺔ اﻻداة . Labeling
وﻳﻤﻜﻦ اﺿﺎﻓﺔ Markerوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Color Scaleواﺧﺘﻴﺎر
Add Marker
84
ﻳﻮﺟﺪ ﻓﻰ Color Scaleﻗﻴﻤﺔ آﺒﺮى وﻗﻴﻤﺔ ﺻﻐﺮى .ﻓﻤﺎذا اذا آﺎﻧﺖ اﻟﻘﻴﻤﺔ اﻟﻤﻮﺟﻮدة اآﺒﺮ ﻣﻦ اﻟﻘﻴﻤﺔ اﻟﻜﺒﺮى
او اﺻﻐﺮ ﻣﻦ اﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى ﻓﻤﺎ هﻮ ﻟﻮن هﺬة اﻟﻘﻴﻤﺔ؟
85
ﻳﻮﺟﺪ ﻓﻰ Color Scaleﻣﺴﺘﻄﻴﻠﻴﻦ ﺻﻐﻴﺮﻳﻦ اﺣﺪهﻤﺎ اﺳﻔﻞ Color Scaleواﻻﺧﺮ اﻋﻠﻰ Color
.Scaleهﺬان اﻟﻤﺴﺘﻄﻴﻠﻴﻦ ﻳﺤﺪدان ﻟﻮن اﻟﻘﻴﻢ اﻻآﺒﺮ ﻣﻦ اﻟﻘﻴﻤﺔ اﻟﻜﺒﺮى واﻟﻘﻴﻤﺔ اﻻﺻﻐﺮ ﻣﻦ اﻟﻘﻴﻤﺔ اﻟﺼﻐﺮى .
ﻳﻤﻜﻦ ﺗﻐﻴﻴﺮ ﻟﻮﻧﻰ هﺬﻳﻦ اﻟﻤﺮﺑﻌﻴﻦ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻬﻢ واﺧﺘﻴﺎر اﻟﻠﻮن اﻟﺬى ﺗﺮﻳﺪﻩ.
ﺗﻜﻮن اﻻﻟﻮن ﻓﻰ Color Scaleﻣﺘﺪرﺟﺔ ﻳﻤﻜﻦ اﻟﻐﺎء هﺬا اﻟﺘﺪرج ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس و ﻧﻠﻐﻰ
اﺧﺘﻴﺎر Interpolate Color
86
ﻣﻠﺤﻮﻇﺔ :ﻳﺘﻔﻖ Intensity Charts And Graphsﻣﻊ Chartsو Graphsﻓﻰ ﻣﻌﻈﻢ اﻟﺨﺼﺎﺋﺺ
ﺑﺎﻻﺿﺎﻓﺔ اﻟﻰ اﻟﺨﺼﺎﺋﺺ اﻟﺨﺎﺻﺔ ﺑﺎﻟﺒﻌﺪ Zوﺗﺨﺼﻴﺺ اﻻﻟﻮان.
ﻟﻤﺰﻳﺪ ﻣﻦ اﻻﻣﺜﻠﺔ ﻳﻤﻜﻦ اﻻﻃﻼع ﻋﻠﻰ اﻻﻣﺜﻠﺔ اﻟﻤﻮﺟﻮدة ﻣﻊ ﻧﺴﺨﺔ LabVIEWواﻟﻤﻮﺟﻮدة ﻓﻰ
Examples\general\graphs\intgraph.llb
واﻳﻀﺎ اﻟﻤﺜﺎﻟﻴﻴﻦ Simulation of Tomographyو Heat Equationاﻟﻤﻮﺟﻮدﻳﻦ ﻓﻰ
Examples\analysis\mathxmpl.llb
87
3D Graphs
ﻳﻤﻜﻦ ﻓﻰ LabVIEWرﺳﻢ رﺳﻮﻣﺎت ﻓﻰ ﺛﻼث اﺑﻌﺎد ﺣﻴﺚ ﻳﻮﺟﺪ 3D Surface Graphو 3D
Parametric Graphو 3D Curve Graphﻟﻌﻤﻞ رﺳﻮﻣﺎت ﻓﻰ ﺛﻼث اﺑﻌﺎد Xو Yو .Z
وهﺬة Graphsﻻ ﺗﻮﺟﺪ ﻓﻰ اﻟﻨﺴﺨﺔ اﻻﺳﺎﺳﻴﺔ ﻟـ LabVIEWاﻧﻤﺎ ﺗﻮﺟﺪ ﻣﻊ .LabVIEW Professional
وﻟﻜﻞ ﻧﻮع ﻣﻦ اﻧﻮاع 3D Graphsاﻟﺜﻼﺛﺔ VIﺧﺎﺻﺔ ﺑﻪ ﻻﺧﺮاج اﻟﺮﺳﻢ ﻋﻠﻰ .3D Graph
88
89
3D Surface Graph
ﻳﻘﻮم هﺬا Graphﺑﺮﺳﻢ اﺳﻄﺢ ﻓﻰ ﺛﻼث اﺑﻌﺎد .
90
آﻴﻔﻴﺔ اﻟﺮﺳﻢ ﻋﻠﻰ : 3D Surface Graph
-1ﻳﻤﻜﻦ ﻋﺪم اﻟﺘﻮﺻﻴﻞ اﻟﻰ اﻟﻤﺪﺧﻠﻴﻦ X Vectorو Y Vectorواﻻآﺘﻔﺎء ﺑﺘﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ
اﻟﻰ اﻟﻤﺪﺧﻞ .Z Matrix
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﻜﻮن ﻗﻴﻢ Xهﻰ رﻗﻢ اﻟﺼﻒ و ﻗﻴﻢ Yهﻰ رﻗﻢ اﻟﻌﻤﻮد ﻟﻠﻤﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪﻳﻦ .Z Matrix
ﻣﺜﺎل:
91
ﻣﺜﺎل اﺧﺮ:
92
-2ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ اﻟﻰ اﻟﻤﺪﺧﻞ X Vectorو اﺧﺮى اﻟﻰ اﻟﻤﺪﺧﻞ Y Vectorو ﻣﺼﻔﻮﻓﺔ
ذات ﺑﻌﺪﻳﻦ اﻟﻰ اﻟﻤﺪﺧﻞ Z Matrixوﻟﻜﻦ ﻳﺠﺐ ان ﻳﻜﻮن ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ Xﻳﺴﺎوى ﻋﺪد ﺻﻔﻮف
اﻟﻤﺼﻔﻮﻓﺔ Zواﻳﻀﺎ ﻋﺪد ﻋﻨﺎﺻﺮ اﻟﻤﺼﻔﻮﻓﺔ Yﻳﺴﺎوى ﻋﺪد اﻋﻤﺪة اﻟﻤﺼﻔﻮﻓﺔ Zواذا ﻟﻢ ﻳﺘﺤﻘﻖ هﺬا اﻟﺸﺮط
ﺳﻴﺘﻢ ﺗﺠﺎهﻞ اﻟﻤﺼﻔﻮﻓﺘﻴﻦ Xو.Y
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ اى ﻗﻴﻤﺔ ﻓﻰ ﻣﺼﻔﻮﻓﺔ Zﻟﻬﺎ رﻗﻢ ﺻﻒ ﻣﺜﻼ nو رﻗﻢ ﻋﻤﻮد ﻣﺜﻼ mﻓﺎن اﺣﺪاﺛﻴﺎت XوY
هﻰ )) X(nاﻟﻌﻨﺼﺮ رﻗﻢ nﻓﻰ ﻣﺼﻔﻮﻓﺔ ( Xو )) Y(mاﻟﻌﻨﺼﺮ رﻗﻢ mﻓﻰ ﻣﺼﻔﻮﻓﺔ .(Y
93
94
3D Parametric Graph
ﺗﻘﻮم هﺬا Graphﺑﺮﺳﻢ ﺳﻄﻮح Parametricﻓﻰ ﺛﻼث اﺑﻌﺎد .
95
ﻣﺜﺎل :
96
3D Curve Graph
97
آﻞ ﻧﻘﻄﺔ ﻓﻰ اﻟﺮﺳﻢ ﻟﻬﺎ اﺣﺪاﺛﻲ Xﻓﻰ ﻣﺼﻔﻮﻓﺔ Xو اﺣﺪاﺛﻲ Yﻓﻰ ﻣﺼﻔﻮﻓﺔ Yو اﺣﺪاﺛﻲ Zﻓﻰ ﻣﺼﻔﻮﻓﺔ .Z
ﻓﻤﺜﻼ :اﻟﻨﻘﻄﺔ رﻗﻢ mاﺣﺪاﺛﻴﺎﺗﻬﺎ ) X(mو ) Y(mو ).Z(m
ﻣﺜﺎل :
98
ﺧﺼﺎﺋﺺ 3D Graph
ﻳﻤﻜﻦ اﻇﻬﺎر ﺧﺼﺎﺋﺺ 3D Graphوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Graphواﺧﺘﻴﺎر
CWGraph3D>> Properties
ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ
99
آﻤﺎ ﺗﻈﻬﺮ ﻣﻊ ﻧﺎﻓﺬة ﺧﺼﺎﺋﺺ Graphﻧﺎﻓﺬة ﺗﻈﻬﺮ ﺷﻜﻞ Graphﻣﻊ آﻞ ﺗﻐﻴﻴﺮ ﻓﻰ اﻟﺨﺼﺎﺋﺺ.
100
ﺗﺘﻴﺢ هﺬة Graphsﺗﺤﺮﻳﻚ اﻟﺮﺳﻮﻣﺎت و دوراﻧﻬﺎ ﻓﻰ ﺛﻼث اﺑﻌﺎد ﺑﻄﺮﻳﻘﺔ ﺗﻔﺎﻋﻠﻴﺔ ﻣﻊ اﻟﻤﺆﺷﺮ.
ﻓﺎﻟﺒﻀﻐﻂ ﻋﻠﻰ اﻟﺮﺳﻢ وﺗﺤﺮﻳﻚ اﻟﻤﺆﺷﺮ ﻓﻰ اى اﺗﺠﺎﻩ ﻣﻊ اﺳﺘﻤﺮار اﻟﻀﻐﻂ ﻳﺪور اﻟﺮﺳﻢ ﻣﻊ ﺣﺮآﺔ اﻟﻤﺆﺷﺮ.
101
Time StampsوWaveformsو Dynamic Data
ﻏﺎﻟﺒﺎ ﻣﺎ ﺗﻜﻮن اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻳﺘﻢ ﺗﺤﻠﻴﻠﻬﺎ ﻓﻰ اﻟﺒﺮﻧﺎﻣﺞ ﻣﺮﺗﺒﻄﺔ ﺑﺎﻟﺰﻣﻦ ﻣﺜﻞ اﻻﺷﺎرات و ﺗﻐﻴﺮ درﺟﺔ اﻟﺤﺮارة
او اى ﻗﻴﻤﺔ ﻓﻴﺰﻳﺎﺋﻴﺔ اﺧﺮى ﻣﻊ اﻟﺰﻣﻦ.وﻳﻮﺟﺪ ﻓﻰ LabVIEWاﻧﻮاع ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺨﺎﺻﺔ )(Data Type
ﻟﺘﺴﻬﻴﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮﺗﺒﻄﺔ ﺑﺎﻟﺰﻣﻦ .وهﺬة اﻟﺒﻴﺎﻧﺎت اﻟﺨﺎﺻﺔ ﻣﺜﻞ Time Stamps
و Waveformsو Digital Dataو .Dynamic Dataوﺳﻮف ﻧﺸﺮح هﺬة اﻻﻧﻮاع ﻣﻦ اﻟﺒﻴﺎﻧﺎت.
102
Time Stamps
.(ﻳﻘﻮم هﺬة اﻟﻨﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﺑﺘﺨﺰﻳﻦ وﻋﺮض اﻟﺘﺎرﻳﺦ و اﻟﻮﻗﺖ ﺑﺪﻗﺔ ﻋﺎﻟﻴﺔ )اﻟﻮﻗﺖ ﻳﺤﺘﻮى ﻋﻠﻰ ﺟﺰء ﻣﻦ اﻟﺜﺎﻧﻴﺔ
ﻻدﺧﺎل او ﻋﺮض هﺬا اﻟﻨﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت وهﻤﺎIndicator وControl وﻳﻮﺟﺪ
.Time Stamp Indicator وTime Stamp Control
103
آﻤﺎ ﻳﺘﻢ ادراج Time Stamp Constantﻓﻰ Block Diagram
ﻣﻦ
Function Palette>>Programming>>Timing
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ ان ﻳﺤﺘﻮى Numeric Controlﻋﻠﻰ ﻧﻮع اﻟﺒﻴﺎﻧﺎت ) Time Stampاى ﻳﺤﺘﻮى ﻋﻠﻰ
اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ( وذﻟﻚ ﺑﺘﺤﻮﻳﻞ ﻓﻮرﻣﺎت اﻟﺮﻗﻢ اﻟﻰ . Date\Time
104
ﺗﻐﻴﻴﺮ ﻗﻴﻢ :Time Stamp
ﻋﻨﺪ ادراج Time Stamp Controlاو Indicatorاو Constantﻳﻜﻮن ﻏﻴﺮ ﻣﺤﺪد اﻟﻮﻗﺖ و ﻻ
اﻟﺘﺎرﻳﺦ.
105
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ او ﺗﻐﻴﻴﺮهﻢ ﺑﻌﺪة ﻃﺮق:
-1ﺗﺤﺪﻳﺪ وﻗﺖ وﺗﺎرﻳﺦ Time Stampﺑﺎﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ اﻟﺤﺎﻟﻴﻴﻦ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس
ﻋﻠﻰ Controlواﺧﺘﻴﺎر
Data Operations>>Set Time to Now
106
ﻳﻤﻜﻦ اﻇﻬﺎر ﻧﺎﻓﺬة ﺗﺤﺪﻳﺪ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Time Stampواﺧﺘﻴﺎر
Data Operations>>Set Time and Date
Data and Time وذﻟﻚ ﻣﻬﻢ ﺑﺎﻟﻨﺴﺒﺔ ﻟﻠـ Indicatorو Constantﺣﻴﺚ ﻟﻴﺲ ﻟﺪﻳﻬﻢ زرار
.Browse
107
-3ﻧﻈﻠﻞ اﻟﺠﺰء اﻟﺬى ﻧﺮﻳﺪ ﺗﻐﻴﻴﺮﻩ ﻓﻰ Time Stampﺑﻮاﺳﻄﺔ اﻻداة Labelingﺛﻢ ﻧﻜﺘﺐ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة او
ﻧﺴﺘﺨﺪم اﻻﺳﻬﻢ اﻟﻤﻮﺟﻮدة ﻓﻰ ﻟﻮﺣﺔ اﻟﻤﻔﺎﺗﻴﺢ Upو Downﻟﺰﻳﺎدة اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﻇﻠﻠﻨﺎهﺎ ﺑﻮاﺣﺪ او ﺗﻘﻠﻴﻠﻬﺎ
ﺑﻮاﺣﺪ.او ﻧﺴﺘﺨﺪم اﻟﺴﻬﻤﻴﻦ اﻟﻤﻮﺟﻮدﻳﻦ ﻣﻊ .Control
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ ﺟﻌﻞ Numericﻋﻠﻰ هﻴﺌﺔ وﻗﺖ ﻓﻴﻪ ﻗﻴﻢ اﻟﺜﺎﻧﻴﺔ واﻟﺪﻗﺎﺋﻖ واﻟﺴﺎﻋﺎت ﺑﺪﻻ ﻣﻦ اﻟﺜﻮاﻧﻰ ﻓﻘﻂ
وذﻟﻚ ﺑﺎن ﻧﺠﻌﻞ ﻧﻮع اﻟﻔﻮرﻣﺎت Relative Formatوذﻟﻚ ﻣﻦ ﻧﺎﻓﺬة .Format and Precision
108
: ﻣﺜﺎل
اﻟﻤﻮﺟﻮدة ﻓﻰGet Date/Time In Seconds ﺳﻨﺴﺘﺨﺪم داﻟﺔ
Function Palette >>Programming >> Timing
109
ﻟﻠﺤﺼﻮل ﻋﻠﻰ اﻟﻮﻗﺖ ﻗﺒﻞ وﺑﻌﺪ ﺗﻨﻔﻴﺬ ﺟﺰء ﻣﻌﻴﻦ ﻣﻦ اﻟﺒﺮﻧﺎﻣﺞ ﺛﻢ ﻧﺤﺴﺐ اﻟﻮﻗﺖ اﻟﻤﺴﺘﻐﺮق ﻓﻰ ﺗﻨﻔﻴﺬ هﺬا
اﻟﺠﺰء.وﺳﻨﺴﺘﺨﺪم اﻳﻀﺎ .Flat Sequence Structure
آﻤﺎ ﻳﻤﻜﻦ اﺿﺎﻓﺔ وﻗﺖ ﺑﺎﻟﺜﺎﻧﻴﺔ اﻟﻰ Time Stampﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ .Add
110
اﻟﺘﺤﻮﻳﻞ ﺑﻴﻦ Time Stampو: Numeric
ﻟﻘﺪ رأﻳﻨﺎ ان هﻨﺎك ﻋﻼﻗﺔ ﺑﻴﻦ Numericو .Time Stamp
وﺗﻮﺟﺪ دوال ﻟﻠﺘﺤﻮﻳﻞ ﺑﻴﻨﻬﻢ ﻣﺜﻞ
داﻟﺔ To Double Precision Floatﻟﻠﺘﺤﻮﻳﻞ اﻟﻰ رﻗﻢ ﻣﻦ ﻧﻮع . DBLو ﻳﻤﻜﻦ اﺳﺘﺨﺪام هﺬة اﻟﺪاﻟﺔ
ﻟﻠﺘﺤﻮﻳﻞ ﻣﻦ Time Stampاﻟﻰ .DBL
111
او
Function Palette >> Programming >> Timing
112
Waveforms
ﻣﻦ اآﺜﺮ اﻟﺒﻴﺎﻧﺎت اهﻤﻴﺔ وﻳﻜﺜﺮ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ هﻰ اﻻﺷﺎرات او اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﺘﻐﻴﺮ ﻣﻊ اﻟﺰﻣﻦ ﻣﺜﻞ ﺗﻐﻴﻴﺮ
اﻟﺼﻮت او اﻟﻀﻐﻂ او اﻟﺤﺮارة ﻣﻊ اﻟﺰﻣﻦ.واﻳﻀﺎ اﻻﺷﺎرات اﻟﺮﻗﻤﻴﺔ ) (Digitalاﻟﺘﻰ ﺗﺴﺘﺨﺪم ﻓﻰ اﻻﺗﺼﺎﻻت
وﺑﻮاﺳﻄﺔ اﻟﻜﻤﺒﻴﻮﺗﺮ.
ﻟﺴﻬﻮﻟﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ هﺬة اﻟﺒﻴﺎﻧﺎت ﻳﻮﺟﺪ ﻓﻰ LabVIEWﻧﻮع ﺧﺎص ﻣﻦ اﻟﺒﻴﺎﻧﺎت ) ( Data Typeﻟﻠﺘﻌﺎﻣﻞ
ﻣﻊ اﻻﺷﺎرات او اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮﺗﺒﻄﺔ ﺑﺎﻟﺰﻣﻦ وهﻮ .Waveforms
ﻻﺣﻆ اﻧﻪ ﺑﻤﻌﺮﻓﺔ زﻣﻦ اول ﻗﻴﻤﺔ ﻓﻰ اﻟﺒﻴﺎﻧﺎت واﻟﺰﻣﻦ ﺑﻴﻦ آﻞ ﻗﻴﻤﺔ واﻟﺘﻰ ﺗﻠﻴﻬﺎ ﻳﻤﻜﻦ ﺣﺴﺎب زﻣﻦ اى ﻗﻴﻤﺔ ﻣﻦ
ﻗﻴﻢ اﻻﺷﺎرة او اﻟﻤﺼﻔﻮﻓﺔ.
وآﺄى Data Typeﻓﻰ LabVIEWﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت و Clustersﻳﻤﻜﻦ اﻟﻘﻴﺎم ﺑﻜﺜﻴﺮ ﻣﻦ اﻟﻌﻤﻠﻴﺎت ﻋﻠﻰ
Waveformsﻣﺜﻞ اﻟﺠﻤﻊ و اﻟﻄﺮح.
وﻳﻮﺟﺪ ﻧﻮﻋﺎن ﻣﻦ Waveformهﻤﺎ :
Analog Waveform -1وهﻮ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺷﺎرات اﻟﺘﻤﺎﺛﻠﻴﺔ .
113
وﻋﻨﺪ ذآﺮ آﻠﻤﻪ Waveformﻓﻘﻂ ﻓﺎﻧﻨﺎ ﻧﻘﺼﺪ .Analog Waveform
)ﺷﻜﻞ ﻣﺼﻐﺮ ﻟﺪاﻟﺔ (Sinوان ﻟﻮﻧﻪ ﺑﺮﺗﻘﺎﻟﻰ. ﻻﺣﻆ ان رﻣﺰ Analog Waveformهﻮ
)ﺷﻜﻞ ﻣﺼﻐﺮ ﻟـ (Square Waveوان ﻟﻮﻧﻪ اﺧﻀﺮ. اﻣﺎ رﻣﺰ Digital Waveformهﻮ
واﻟﻠﻮن واﻟﺸﻜﻞ ﻣﻬﻤﻴﻦ ﻓﻰ اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﻬﻤﺎ.
وﻳﺘﻢ ادراج Controlsو Indicatorsاﻟﺨﺎﺻﺔ ﺑـ Waveformو Digital Waveformﻣﻦ
Controls Palette>>Modern>>I/O
114
ذآﺮﻧﺎ ان Waveformﻳﺤﺘﻮى ﻋﻠﻰ ﻣﺼﻔﻮﻓﺔ Yذات ﺑﻌﺪ واﺣﺪ و t0و dtوﺗﺤﺘﻮى اﻳﻀﺎ ﻋﻠﻰ .Attribute
وﻧﺘﻌﺮف ﻋﻠﻰ هﺬة اﻟﻤﻜﻮﻧﺎت ﺑﺎﻟﻨﺴﺒﺔ ﻟـ Analog Waveformو:Digital Waveform
اﻟﻤﺼﻔﻮﻓﺔ :Yﻓﺎﻧﻬﺎ ﻓﻰ ﺣﺎﻟﺔ Analog Waveformﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﻣﻦ ﻗﻴﻢ ﺗﺘﻐﻴﺮ
ﻣﻊ اﻟﺰﻣﻦ)ﻗﻴﻢ اﻻﺷﺎرة( وﻋﺎدة ﺗﻜﻮن هﺬة اﻟﻘﻴﻢ ﻣﻦ اﻟﻨﻮع . DBL
وﻓﻰ ﺣﺎﻟﺔ اذا آﺎﻧﺖ اﻻﺷﺎرة ﻋﺒﺎرة ﻋﻦ ﺣﺎﻟﺘﻴﻦ 0و 5ﻓﻮﻟﺖ ﻣﺜﻼ اى اﺷﺎرة رﻗﻤﻴﺔ ﻓﺎﻧﻨﺎ ﻧﺴﺘﺨﺪم Digital
Waveformﻟﺘﺨﺰﻳﻦ اﻻﺷﺎرة و ﻣﻌﺎﻟﺠﺘﻬﺎ.
و Yﻓﻰ ﺣﺎﻟﺔ Digital Waveformﻋﺒﺎرة ﻋﻦ ﻧﻮع اﺧﺮ ﻣﻦ اﻟﺒﻴﺎﻧﺎت هﻮ Digital Dataﺳﻮف ﻧﺸﺮﺣﻪ
ﺑﺎﻟﺘﻔﺼﻴﻞ ﻓﻰ هﺬة اﻟﺪرس.و ﺑﺎﺧﺘﺼﺎر Digital Dataﻋﺒﺎرة ﺟﺪول ﻣﻦ اﻻرﻗﺎم اﻟﺜﻨﺎﺋﻴﺔ )0و(1هﺬا اﻟﺠﺪول
ﻳﻤﺜﻞ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻﺷﺎرات اﻟﺮﻗﻤﻴﺔ آﻤﺎ ﺳﻨﺮى.
: t0آﻤﺎ ذآﺮﻧﺎ ﻓﺎﻧﻬﺎ Time Stampﻓﻴﻬﺎ زﻣﻦ اول ﻗﻴﻤﺔ ﻓﻰ Yاو ﺑﺪاﻳﺔ ﺗﺴﺠﻴﻞ اﻟﺒﻴﺎﻧﺎت.
: dtوهﻰ ﻗﻴﻤﺔ وﺣﻴﺪة ﺗﻤﺜﻞ اﻟﻔﺮق اﻟﺰﻣﻨﻰ ﺑﻴﻦ آﻞ ﻗﻴﻤﺔ واﻟﺘﻰ ﺗﻠﻴﻬﺎ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ .Y
:Attributeوهﺬا اﻟﻤﻜﻮن ﻟﻴﺲ ﻇﺎهﺮا ﺣﻴﻦ ادراج Waveformوﻻﻇﻬﺎرﻩ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس
ﻋﻠﻰ Waveformوﻧﺨﺘﺎر
Visible Items>>Attribute
115
و Attributeﻣﻦ اﻟﻨﻮع Variantوهﺬا اﻟﻨﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻳﻤﻜﻦ ﺗﺨﺰﻳﻦ ﻓﻴﻪ اى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺴﺘﺨﺪﻣﺔ
ﻓﻰ . LabVIEWوﻳﺤﺘﻮى Attributeﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت اﺿﺎﻓﻴﺔ ﻋﻦ Waveformﻣﺜﻞ رﻗﻢ Channelاو
رﻗﻢ ﺟﻬﺎز.و Attributeﻣﻜﻮن اﺧﺘﻴﺎرى ﻟﺘﺨﺰﻳﻦ اى ﻣﻌﻠﻮﻣﺎت اﺿﺎﻓﻴﺔ.
116
Waveform -1ﺑﻬﺎ ﻣﻌﻠﻮﻣﺎت ﻋﻦ زﻣﻦ اﻻﺷﺎرة ﻓـ t0ﺗﺴﺠﻞ ﺑﺪاﻳﺔ ﻗﻴﺎس اﻻﺷﺎرة اﻟﺘﺎرﻳﺦ و اﻟﻮﻗﺖ .ﻟﺬﻟﻚ
هﻰ ﻣﻨﺎﺳﺒﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺷﺎرات اﻟﻤﻜﺘﺴﺒﺔ ﻣﻦ آﺮوت .Data Acquisition
117
وﻣﻦ اهﻢ هﺬة اﻟﺪوال Get Waveform Componentsوداﻟﺔ .Build Waveform
داﻟﺔ : Get Waveform Components
وﺗﺴﺘﺨﺪم هﺬة اﻟﺪاﻟﺔ ﻓﻰ اﻟﺤﺼﻮل ﻋﻠﻰ ﻣﻜﻮﻧﺎت Waveformﻣﻦ t0او dtاو .Y
وﺗﺸﺒﻪ هﺬة اﻟﺪاﻟﺔ داﻟﺔ Unbundleاﻟﺘﻰ ﺗﺴﺘﺨﺪم ﻣﻊ .Cluster
وﻣﺪﺧﻞ هﺬة اﻟﺪاﻟﺔ Waveform:اﻟﺬى ﻧﺮﻳﺪ اﻟﺤﺼﻮل ﻋﻠﻰ اﺣﺪ ﻣﻜﻮﻧﺎﺗﻪ.
وﻣﺨﺎرﺟﻬﺎ :اى ﻣﻦ ﻣﻜﻮﻧﺎت .Waveform
118
اى ﻳﻤﻜﻦ اﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊPolymorphism ﺧﺎﺻﻴﺔGet Waveform Components ﻟﺪاﻟﺔ
آﻤﺎ ﺳﻴﺘﻐﻴﺮ رﻣﺰ اﻟﻤﺪﺧﻞDigital Waveform وﺳﺘﺘﻐﻴﺮ اﻟﻤﺨﺎرج اﻟﻰ ﻣﻜﻮﻧﺎتDigital Waveform
. Digital Waveform اﻟﻰ رﻣﺰAnalog Waveform ﻣﻦ رﻣﺰ
119
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ اﺿﺎﻓﺔ ﻣﺨﺮج او ﺗﺤﺪﻳﺪ ﻧﻮﻋﻪ او ﺣﺬﻓﺔ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺨﺮج .
120
ﻳﻤﻜﻦ ﻣﺪ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻻﺳﻔﻞ ﻟﺰﻳﺎدة ﻋﺪد اﻟﻤﺪاﺧﻞ وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻤﺪﺧﻞ ﺑﺎﻻداة Operatingﺗﻈﻬﺮ ﻟﻨﺎ
ﻗﺎﺋﻤﺔ ﻧﺨﺘﺎر ﻣﻨﻬﺎ ﻧﻮع اﻟﻤﺪﺧﻞ
اذا ﻟﻢ ﻳﺘﻢ ﺗﻮﺻﻴﻞ ﻣﺪﺧﻞ Waveformﻳﺘﻢ اﻧﺸﺎء Waveformﺟﺪﻳﺪة ﺑﺎﻟﻤﻜﻮﻧﺎت اﻟﺘﻰ ﻋﻠﻰ اﻟﻤﺪاﺧﻞ
121
اذا ﺗﻢ ﺗﻮﺻﻴﻞ Waveformﻓﻰ اﻟﻤﺪﺧﻞ ﻓﺎﻧﻪ ﻳﺘﻢ اﺳﺘﺒﺪال ﻣﻜﻮﻧﺎﺗﻬﺎ ﺑﺎﻟﻤﻜﻮﻧﺎت اﻟﻤﻮﺟﻮدة ﻋﻠﻰ ﻣﺪاﺧﻞ اﻟﺪاﻟﺔ.
122
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ اﺿﺎﻓﺔ ﻣﺪﺧﻞ او ﺗﺤﺪﻳﺪ ﻧﻮﻋﻪ او ﺣﺬﻓﺔ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺪﺧﻞ.
وﺗﻘﻮم هﺬة اﻟﺪوال ﺑﺎﻟﻌﻤﻠﻴﺎت ﻋﻠﻰ Analog Waveformsﻣﻦ ﺟﻤﻊ وﻃﺮح وﺿﺮب واﻟﺤﺼﻮل ﻋﻠﻰ
اﻋﻠﻰ واﺻﻐﺮ ﻧﻘﻄﺔ .
123
Waveforms ﻳﺠﺐ ان ﺗﻜﻮنWaveform اﻟﺪوال اﻟﺘﻰ ﺗﻘﻮم ﺑﻌﻤﻠﻴﺎت ﻋﻠﻰ اآﺜﺮ ﻣﻦ: ﻣﻠﺤﻮﻇﺔ
.dt اﻟﺪاﺧﻠﺔ اﻟﻴﻬﺎ ﻟﻬﺎ ﻧﻔﺲ
Sine وNoise وSingle and Multitone وﺗﻘﻮم هﺬة اﻟﺪوال ﺑﺎﺧﺮاج اﻧﻮاع ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻻﺷﺎرات ﻣﺜﻞ
... واﺧﺮىSawtooth وTriangle Wave وSquare Wave وWave
124
Frequency Domain وTime Domain ﻓﻰWaveform وﺗﻘﻮم هﺬة اﻟﺪوال ﺑﻌﻤﻞ ﻗﻴﺎﺳﺎت ﻋﻠﻰ
وﻗﻴﺎﺳﺎتFFT و اﻳﻀﺎPhase وAmplitude وTone Frequency وRMS وDC ﻣﺜﻞ
...اﺧﺮى
اﻟﻤﻮﺟﻮدة ﻓﻰDigital Waveform ﻣﺠﻤﻮﻋﺔ اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﺎﻟﻌﻤﻠﻴﺎت ﻋﻠﻰ
Function Palette>>Programming>>Waveform>>Digital Waveform
125
ﻣﺜﻞ اﻟﺒﺤﺚ ﻓﻰ اﻻﺷﺎرة او ﺿﻐﻂ او ﻓﻚDigital Waveformوﺗﻘﻮم هﺬة اﻟﺪوال ﺑﺎﻟﻌﻤﻠﻴﺎت اﻟﺨﺎﺻﺔ ﺑـ
. وﻏﻴﺮهﺎWaveform ﺿﻐﻂ
اﻟﻤﻮﺟﻮدة ﻓﻰDigital Conversion ﻣﺠﻤﻮﻋﺔ اﻟﺪوال
Function Palette>>Programming>>Waveform>>Digital Waveform
>> Digital Conversion
126
Digital Data
127
ﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ اﻟﻘﻴﻢ اﻟﻤﻮﺟﻮدة ﻓﻰ Digital Dataﺑﺘﻈﻠﻴﻞ اﻟﻘﻴﻤﺔ وآﺘﺎﺑﺔ اﻟﻘﻴﻤﺔ اﻟﺠﺪﻳﺪة.
آﻤﺎ ﻳﻤﻜﻦ اﺿﺎﻓﺔ ﺻﻒ او ﻋﻤﻮد او ﺣﺬف ﺻﻒ او ﻋﻤﻮد وذﻟﻚ ﻣﻦ اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ اﻟﻤﺎوس ﻋﻠﻰ
.Digital Data
128
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ادراج Digital Dataاول ﻣﺮة ﺗﻜﻮن ﻓﺎرﻏﺔ وﻳﻤﻜﻦ ادﺧﺎل اﻟﻘﻴﻢ اﻟﻴﻬﺎ ﻣﺒﺎﺷﺮة او اﺳﺘﺨﺪام
دوال اﻟﺘﺤﻮﻳﻞ آﻤﺎ ﺳﻨﺮى .
وهﺬا اﻟﺮﻣﺰ ﻣﻬﻢ ﻓﻰ اﻟﺘﻌﺮف ﻋﻠﻰ اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﻪ. ﻣﻠﺤﻮﻇﺔ :رﻣﺰ Digital Dataهﻮ
ﻳﻤﻜﻦ ﺗﺤﻮﻳﻞ Digital Dataاﻟﻰ اﻧﻮاع اﺧﺮى ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻣﺜﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻻرﻗﺎم اﻟﺜﻨﺎﺋﻴﺔ او ﻣﺼﻔﻮﻓﺔ
ﻣﻦ اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ واﻳﻀﺎ ﻳﻤﻜﻦ اﻟﻌﻜﺲ وذﻟﻚ ﻣﻦ ﺧﻼل دوال اﻟﺘﺤﻮﻳﻞ
Digital Conversionاﻟﻤﻮﺟﻮدة ﻓﻰ
Function Palette>>Programming>>Waveform>>Digital Waveform
>> Digital Conversion
اﻣﺜﻠﺔ:
-1اﻟﺘﺤﻮﻳﻞ ﻣﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﻟﻘﻴﻢ ﺛﻨﺎﺋﻴﺔ اﻟﻰ Digital Data
-2ﺗﺤﻮﻳﻞ ﻣﺼﻔﻮﻓﺔ ﺑﻬﺎ ارﻗﺎم ﺻﺤﻴﺤﺔ ﻣﻦ اﻟﻨﻮع Unsigned Integer ) U8ﻣﻜﻮن ﻣﻦ 8ﺑﺖ( اﻟﻰ
.Digital Data
129
ﻣﻠﺤﻮﻇﺔ :هﺬة اﻟﺪوال Polymorphicاى اﻧﻬﺎ ﺗﻌﻤﻞ ﻣﻊ اآﺜﺮ ﻣﻦ ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻣﺜﻞ Digital Data
و Digital Waveformﻟﺬﻟﻚ ﻳﻮﺟﺪ ﻣﻌﻬﺎ Polymorphic VI Selectorﻻﺧﺘﻴﺎر ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺬى
ﻧﺮﻳﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ . Polymorphic VI Selector
130
Digital Waveform Graph
.Digital Waveform اوDigital Data ﺑﺮﺳﻢ اﻟﻘﻴﻢ اﻟﺮﻗﻤﻴﺔ اﻟﻤﻮﺟﻮدة ﻓﻰGraph ﻳﻘﻮم هﺬا
Digital Waveform اوDigital Data ﺑﺘﻮﺻﻴﻞDigital Waveform Graph ﻳﺘﻢ اﻟﺮﺳﻢ ﻋﻠﻰ
.Graph اﻟﻰ
131
Digital Waveform Graph ﺑـDigital Data ﻣﺜﺎل ﺑﺴﻴﻂ ﻳﻮﺿﺢ ﺗﻮﺻﻴﻞ-1:اﻣﺜﻠﺔ
132
Dynamic Data
ﺗﻘﺮﻳﺒﺎ آﻞ Express VIاﻟﺘﻰ ﺗﻘﻴﺲ اﻻﺷﺎرات او ﺗﻘﻮم ﺑﺘﺤﻠﻴﻠﻬﺎ او اﻟﺘﻌﺎﻣﻞ ﻣﻌﻬﺎ ﺗﺴﺘﺨﺪم ﻧﻮع ﺧﺎص ﻣﻦ
اﻟﺒﻴﺎﻧﺎت وهﻮ .Dynamic Data
و Dynamic Dataﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ Waveformsوﻳﻤﻜﻦ اﻋﺘﺒﺎرهﺎ آﺎ ﻣﺼﻔﻮﻓﺔ ﻣﻦ
. Waveformsوﻟﻜﻦ Dynamic Dataاآﺜﺮ ﻣﺮوﻧﺔ و دﻳﻨﺎﻣﻴﻜﻴﻪ.
و Dynamic Dataﺗﺠﻌﻞ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺷﺎرات ﺳﻬﻞ ﻓﻤﻦ اﻟﺴﻬﻞ ﺟﻤﻊ ﻋﺪة اﺷﺎرات ﻣﺨﺘﻠﻔﻪ ﻓﻰ ﻣﺴﺎر
واﺣﺪ وﻣﻦ اﻟﺴﻬﻞ ﻓﺼﻞ و رﺳﻢ هﺬة اﻻﺷﺎرات .وﺗﻈﻬﺮ اهﻤﻴﺘﻬﺎ ﻋﻨﺪ اﻟﺘﻌﺎﻣﻞ ﻣﻊ آﺮوت Data
.Acquisition
وﻟﺮﺳﻢ Dynamic Dataﻳﺘﻢ ﺗﻮﺻﻴﻠﻬﺎ ﻣﺒﺎﺷﺮة ﺑـ .Graph
133
ﺗﻮﺟﺪ دوال ﺧﺎﺻﺔ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺷﺎرات او Dynamic Dataوهﺬة اﻟﺪوال ﻣﻮﺟﻮدة ﻓﻰ
134
Function Palette>>Express>>Signal Manipulation
وﺗﻘﻮم هﺬة Express VIsﺑﺘﺠﻤﻴﻊ اآﺜﺮ ﻣﻦ اﺷﺎرة او ﻓﺼﻠﻬﻢ او اﺧﺘﻴﺎر اﺷﺎرة ﻣﻌﻴﻨﺔ واﻳﻀﺎ اﻟﺘﺤﻮﻳﻞ ﻣﻦ
اﻧﻮاع اﻟﺒﻴﺎﻧﺎت اﻻﺳﺎﺳﻴﺔ ﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت و Waveformsواﻟﻘﻴﻢ اﻟﻮﺣﻴﺪة ) (Scaler Valuesاﻟﻰ
Dynamic Dataواﻟﻌﻜﺲ اﻳﻀﺎ.
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ادراج Convert from Dynamic Dataاو Convert to Dynamic Dataﻷول
ﻣﺮة ﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺳﻨﺤﻮل اﻟﻴﻬﺎ او ﻣﻨﻬﺎ.
135
Mixed Signal Graph
ﻋﻨﺪﻣﺎ ﻳﻜﻮن ﻟﺪﻳﻨﺎ اﺷﺎرة Analogواﺷﺎرة Digitalوﻧﺮﻳﺪ رﺳﻤﻬﻢ ﻣﻊ ﺑﻌﺾ ﻟﻨﺮى ﻋﻼﻗﺔ هﺬة اﻻﺷﺎرات ﻣﻊ
ﺑﻌﻀﻬﺎ ﻓﺎﻧﻨﺎ ﻧﺴﺘﺨﺪم .Mixed Signal Graph
136
وﻓﻰ Mixed Signal Graphﻳﻜﻮن ﺗﺪرﻳﺞ Xﻟﺠﻤﻴﻊ اﻟﺮﺳﻮﻣﺎت واﺣﺪ ﻓﻴﺠﺐ ان ﺗﻜﻮن آﻞ اﻟﺮﺳﻮﻣﺎت ﻟﻬﺎ
ﻧﻔﺲ ﺗﺪرﻳﺞ Xﺗﻘﺮﻳﺒﺎ.
ﻣﻠﺤﻮﻇﺔ :
ﻳﺘﻢ ادراج داﻟﺔ Bundleﻣﻦ
Function Palette>> Programming >>Cluster & Variant
ﻋﻨﺪ اﻟﺮﺳﻢ ﻋﻠﻰ Mixed Signal Graphﻳﺘﻢ ﺗﻘﺴﻴﻢ اﻟﺮﺳﻮﻣﺎت اﻟﻰ ﻣﺠﻤﻮﻋﺎت ) (Groupsآﻞ ﻣﺠﻤﻮﻋﺔ
ﺗﺮﺳﻢ ﻋﻠﻰ ﻣﻨﻄﻘﺔ رﺳﻢ ) (Plot Areaﻣﺴﺘﻘﻠﺔ .
وﻋﺎدة ﻋﻨﺪ وﺟﻮد اﺷﺎرات ﺗﻤﺎﺛﻠﻴﺔ ) ( Analogواﺧﺮى رﻗﻤﻴﺔ ) (Digitalﻳﺘﻢ ﺗﻘﺴﻢ اﻟﺮﺳﻮﻣﺎت اﻟﻰ
ﻣﺠﻤﻮﻋﺘﻴﻦ Group 0و Group 1اﺣﺪاهﻤﺎ ﻟﻼﺷﺎرات اﻟﺘﻤﺎﺛﻠﻴﺔ واﻻﺧﺮى ﻟﻠﺮﻗﻤﻴﺔ .وﺗﺮﺳﻢ Group 0
ﻋﻠﻰ Plot area 0وﺗﺮﺳﻢ Group 1ﻋﻠﻰ .Plot area 1
ﻓﺎﻟﻤﺠﻤﻮﻋﺔ ﻻ ﻳﻤﻜﻦ ان ﺗﺤﺘﻮى ﻋﻠﻰ اﺷﺎرات ﺗﻤﺎﺛﻠﻴﺔ واﺧﺮى رﻗﻤﻴﺔ ﻣﻌﺎ.
ﻣﺜﺎل :
137
ﻣﻮﺟﻮد ﻓﻰMixed Signal Graph اﻟﻤﺜﺎل ﻋﻠﻰ: ﻣﻠﺤﻮﻇﺔ
Examples\general\Graphs\Mixed Signal Graph.vi
Graph ﺟﺪﻳﺪة وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰGroup ﺟﺪﻳﺪ وﻣﻌﻪPlot Area ﻳﻤﻜﻦ اﺿﺎﻓﺔ
Add Plot Area واﺧﺘﻴﺎر
138
وﻳﻤﻜﻦ ﺳﺤﺐ اى ﻣﻦ اﻟﺮﺳﻮﻣﺎت ﻣﻦ Groupsاﻻﺧﺮى وادراﺟﻬﺎ ﻓﻰ Groupاﻟﺠﺪﻳﺪة ﻟﻴﺘﻢ رﺳﻤﻬﺎ ﻓﻰ
Plot Areaاﻟﺠﺪﻳﺪة .وﻟﻜﻦ ﺗﺬآﺮ ان Groupﻗﺪ ﺗﺤﺘﻮى ﻋﻠﻰ اﺷﺎرات ﺗﻤﺎﺛﻠﻴﺔ او رﻗﻤﻴﺔ ﻟﻜﻦ ﻟﻴﺲ اﻟﻨﻮﻋﻴﻦ
ﻓﻰ ﻧﻔﺲ اﻟﻮﻗﺖ.
139
Multi-Plot Cursor
ذآﺮﻧﺎ اﻧﻪ ﻳﻮﺟﺪ ﺛﻼث اﻧﻮاع ﻣﻦ Cursorsﻣﻨﻬﺎ اﻟﻨﻮع Multi-Plot Cursorوهﺬا اﻟﻨﻮع ﻏﻴﺮ ﻣﺘﺎح اﻻ ﻣﻊ
.Mixed Signal Graphوهﺬا Cursorﻳﻤﻜﻦ ان ﻳﻌﻄﻰ اآﺜﺮ ﻣﻦ ﻗﻴﻤﺔ ﻟـ Yﻋﻨﺪ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻟـ . X
هﺬة اﻟﻘﻴﻢ ﻟـ Yﺗﻜﻮن ﻟﺮﺳﻮﻣﺎت ﻣﺨﺘﻠﻔﺔ ﺗﻜﻮن ﻓﻰ Plot areaﻣﺨﺘﻠﻔﺔ.
وآﻤﺎ ﻋﻠﻤﻨﺎ ﻻﺿﺎﻓﺔ Cursorﻧﻀﻐﻂ ﻋﻠﻰ Cursor Legendوﻧﺨﺘﺎر Add Cursorﺛﻢ ﻧﺨﺘﺎر ﻧﻮع
.(Mutli-Plot) Cursor
140
ﺑﻌﺪ اﺿﺎﻓﺔ Multi-Plot Cursorﻧﺤﺪد Plotsاﻟﺘﻰ ﺳﻴﻌﻄﻰ ﻗﻴﻤﺔ Yﻟﻬﺎ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ Cursor
واﺧﺘﻴﺎر Watchﺛﻢ Plotاﻟﺬى ﻧﺮﻳﺪﻩ .ﻻﺣﻆ اﻧﻨﺎ ﻳﻤﻜﻦ ان ﻧﺨﺘﺎر All Plotsاو ﻧﺤﺪد اآﺜﺮ ﻣﻦ .Plot
141
اﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻮرة ﻣﻦ Chartsاو Graphs
ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻧﺤﺘﺎج اﻟﻰ ﺻﻮرة ﻟﻠﺮﺳﻮﻣﺎت اﻟﺘﻰ ﻋﻠﻰ Chartsاو Graphsﻟﻮﺿﻌﻬﺎ ﻓﻰ ﺗﻘﺮﻳﺮ او
ﻋﺮض.وﻳﺘﻴﺢ LabVIEWاﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻮرة ﻟـ Chartاو Graphﻓﻰ هﺌﻴﺔ ﻣﻠﻒ .
وﻟﻌﻤﻞ ذﻟﻚ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Chartاو Graphوﻧﺨﺘﺎر
Export Simplified Image
اذا آﻨﺎ ﻓﻰ Run Mode
او
Data Operation >> Export Simplified Image
اذا آﻨﺎ ﻓﻰ Edit Mode
ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﻧﻮع ﻣﻠﻒ اﻟﺬى ﻧﺮﻳﺪﻩ وﻣﺴﺎرﻩ.
142
143
وﻻPlot Legend وDigital Display ﻳﻈﻬﺮ ﻓﻴﻬﺎ ﻣﻨﻄﻘﺔ اﻟﺮﺳﻢ وGraph اوChart وﺻﻮرة
.Cursor Palette اوGraph Palette اوScale Legend ﻳﻈﻬﺮ ﺑﻬﺎ ﺷﺮﻳﻂ اﻻﻧﺰﻻق او
Intensity اوIntensity Charts ﺧﺎﺻﻴﺔ اﻟﺤﺼﻮل ﻋﻠﻰ ﺻﻮرة اﻟﺮﺳﻢ ﻟﻴﺲ ﻣﺘﺎﺣﺔ ﻟـ: ﻣﻠﺤﻮﻇﺔ
.Graph
144
Œ…‚Ö]<àÚ<ð^ãjÞ÷]<±^Ãi<]<‚Û<<
< <Ý^ÏÖ]<Œ…‚Ö]<îÊ<±^Ãi<]<áƒ^e<ð^ÏÖ]<±]
photonlv@gmail.com
LabVIEW دروس ﺗﻌﻠﻴﻢ
اﻟﺪرس اﻟﺜﺎﻣﻦ
Strings and Files
اﻟﻔﻬﺮس
i
61............................................................ Write to Spreadsheet File VI
65........................................................ Read from Spreadsheet File VI
69................. Text Spreadsheet وﻣﻠﻔﺎتExcel Spreadsheet اﻟﻔﺮق ﺑﻴﻦ ﻣﻠﻔﺎت
71.......................................................................... Low Level File I/O ﺛﺎﻧﻴﺎ
71...................................................................... Text Files آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ
71...................................................... Open/Create/Replace File اﻟﺪاﻟﺔ
72............................................................................... Close File اﻟﺪاﻟﺔ
73.................................................................... Write to Text File اﻟﺪاﻟﺔ
77................................................................ Read from Text File اﻟﺪاﻟﺔ
81.......................................................... Binary آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻨﻮع
81.................................................................... Write to Binary File اﻟﺪاﻟﺔ
84................................................................ Read from Binary File اﻟﺪاﻟﺔ
ii
هﺪف اﻟﺪرس
iii
ﻣﻘﺪﻣﺔ
ﻓﻰ هﺬا اﻟﺪرس ﺳﻮف ﻧﺘﻌﺮف ﻋﻠﻰ ﻋﻨﺼﺮ هﺎم ﺟﺪا ﻓﻰ ﻟﻐﺎت اﻟﺒﺮﻣﺠﺔ وهﻮ ) Stringاﻟﻨﺺ( وﺳﻮف
ﻧﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ Stringsواﻟﺪوال اﻟﺨﺎﺻﺔ ﺑﻬﺎ ﻓﻰ LabVIEWوآﻴﻔﻴﺔ ﻣﻌﺎﻟﺠﺘﻬﺎ
ووﺿﻌﻬﺎ ﻓﻰ اﻟﺸﻜﻞ اﻟﻤﻨﺎﺳﺐ ﻻرﺳﺎﻟﻬﺎ او اﺳﺘﻘﺒﺎﻟﻬﺎ ﻣﻦ اﺟﻬﺰة اﻟﻘﻴﺎس او ﻻى اﺳﺘﺨﺪاﻣﺎت اﺧﺮى.آﻤﺎ
ﺳﻨﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ ﺗﺨﺰﻳﻨﻬﺎ واﺳﺘﺮﺟﺎﻋﻬﺎ ﻣﻦ اﻧﻮاع ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻟﻤﻠﻔﺎت ﻣﺜﻞ ﻣﻠﻔﺎت Textوﻣﻠﻔﺎت
. Binaryآﻤﺎ ﺳﻨﺘﻌﺮف ﻋﻠﻰ ﻧﻮﻋﻴﻦ ﺟﺪﻳﺪﻳﻦ ﻣﻦ اﻟﻤﻠﻔﺎت ﻟﺘﺨﺰﻳﻦ ﺑﻴﺎﻧﺎت اﻟﻘﻴﺎس وهﻤﺎ LVMو.TDM
1
Strings
اﻟﻨﺺ او Stringهﻮ ﻋﺒﺎرة ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺤﺮوف ) (Charactersوﻳﻄﻠﻖ ﻋﻠﻴﻬﺎ ASCII
. Charactersوﻳﻮﺟﺪ ﻟﻜﻞ ﺣﺮف آﻮد )رﻗﻢ ﺧﺎص ﺑﻜﻞ ﺣﺮف( ﻳﺴﻤﻰ ، ASCII Codeﻓﻜﻤﺎ ﻧﻌﻠﻢ ان
آﻞ اﻟﺒﻴﺎﻧﺎت داﺧﻞ اﻟﺤﺎﺳﺐ اﻻﻟﻰ ﺗﻜﻮن ﻋﻠﻰ هﻴﺌﺔ ارﻗﺎم .
وهﺬة اﻟﺤﺮوف ﺗﺸﻤﻞ اﻟﺤﺮوف اﻻﺑﺠﺪﻳﺔ اﻟﺼﻐﻴﺮة و اﻟﻜﺒﻴﺮة و اﻻرﻗﺎم ﻣﻦ 0اﻟﻰ 9و اﻟﺮﻣﻮز واﻳﻀﺎ ﺣﺮف
ﻏﻴﺮ ﻗﺎﺑﻠﻪ ﻟﻼﻇﻬﺎر او اﻟﻄﺒﺎﻋﺔ ﻣﺜﻞ ) Spaceاﻟﻤﺴﺎﻓﺔ( او)New Lineﺳﻄﺮ ﺟﺪﻳﺪ( اوCarriage Return
و اﻟﺤﺮوف اﻟﻐﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﻄﺒﺎﻋﺔ ﻳﻜﻮن ﻟﻬﺎ ﺗﺄﺛﻴﺮ ﻋﻠﻰ ﺷﻜﻞ اﻟﻄﺒﺎﻋﺔ او اﻇﻬﺎر اﻟﻨﺺ .
2
وﻳﺘﻢ ادراج String Constantﻓﻰ Block Diagramﻣﻦ
Functions Palette>>Programming>>String
3
وهﺬة اﻟﻄﺮق هﻰ:
Normal Display
وﻓﻴﻬﺎ ﻳﻈﻬﺮ اﻟﻨﺺ ﺑﺎﻟﺼﻮرة اﻟﻄﺒﻴﻌﻴﺔ اﻟﺘﻰ ﻧﻌﺘﺎد ﻋﻠﻴﻬﺎ وهﺬة اﻟﻄﺮﻳﻘﺔ هﻰ اﻟﻄﺮﻳﻘﺔ اﻻﺳﺎﺳﻴﺔ.
4
-2ﺣﺮوف اﻟﻨﻈﺎم اﻟﺴﺪاﺳﻰ ﻋﺸﺮ ﺗﻜﻮن ﺣﺮوف آﺒﻴﺮة ﻣﺜﻞ \FFاو .\0A
ﻣﺜﺎل
ﻣﻠﺤﻮﻇﺎت :
-1ﺗﻐﻴﻴﺮ ﻧﻤﻂ اﻻﻇﻬﺎر ﻻ ﻳﺆﺛﺮ ﻋﻠﻰ ﻣﺤﺘﻮى .String
-2ﻳﺴﺘﺨﺪم هﺬا اﻟﻨﻤﻂ ﻓﻰ اﺧﺘﺒﺎر اﻟﻨﺼﻮص اﻟﺘﻰ ﻳﺘﻢ ارﺳﺎﻟﻬﺎ او اﺳﺘﻘﺒﺎﻟﻬﺎ ﻣﻦ اﺟﻬﺰة اﻟﻘﻴﺎس ﻋﻦ ﻃﺮﻳﻖ
Serial Portﻣﺜﻼ ،ﺣﻴﺚ ﻳﺘﻢ اﺳﺘﺨﺪام ﺣﺮوف ﻏﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﻄﺒﺎﻋﺔ ﻣﺜﻞ \n New lineاو
\r Carriage Returnﻻﻧﻬﺎء اﻻواﻣﺮ و اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮﺳﻠﺔ ﻋﻨﺪ ﻣﺨﺎﻃﺒﺔ اﺟﻬﺰة اﻟﻘﻴﺎس.
Password Display
وﻓﻰ هﺬا اﻟﻨﻤﻂ ﻻ ﺗﻈﻬﺮ اﻟﺤﺮوف اﻧﻤﺎ ﺗﻈﻬﺮ ﺑﺪﻻ ﻣﻨﻬﺎ اﻟﺮﻣﺰ * .
ﻓﻌﻨﺪ ادﺧﺎل ﺣﺮوف ﻓﻰ String Controlﻓﻰ هﺬا اﻟﻨﻤﻂ ﻻ ﺗﻈﻬﺮ اﻟﺤﺮوف اﻟﺘﻰ ﺗﻜﺘﺒﻬﺎ واﻧﻤﺎ ﻳﻈﻬﺮ ﺑﺪﻻ
ﻣﻨﻬﺎ اﻟﺮﻣﺰ * وﻟﻜﻦ اﻟﻘﻴﻤﺔ اﻟﺘﻰ ﻳﺘﻢ ﻗﺮاءﺗﻬﺎ ﻣﻦ ﺧﻼل String Control Terminalﻓﻰ Block
Diagramهﻰ ﻣﺠﻤﻮﻋﺔ اﻟﺤﺮوف اﻟﺘﻰ ادﺧﻠﺘﻬﺎ.
وﻳﺴﺘﺨﺪم هﺬا اﻟﻨﻤﻂ ﻋﻨﺪﻣﺎ ﻳﺴﺘﺨﺪم String Controlﻓﻰ ادﺧﺎل آﻠﻤﺎت اﻟﺴﺮ.
5
Hex Display
ﻓﻰ هﺬا اﻟﻨﻤﻂ ﻳﺘﻢ اﻇﻬﺎر ASCII Codeﻟﻜﻞ اﻟﺤﺮوف اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻨﺺ ﺑﺎﻟﻨﻈﺎم اﻟﺴﺪاﺳﻰ ﻋﺸﺮ ﺑﺪﻻ
ﻣﻦ اﻟﺤﺮوف.
وﻟﺘﻔﻌﻴﻞ هﺬة اﻟﺨﺎﺻﻴﺔ ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ String Controlوﻧﺨﺘﺎر
Limit to Single Line
6
ﺧﺎﺻﻴﺔ Update Value while Type
ﻋﻨﺪ اﻟﻜﺘﺎﺑﺔ ﻋﻠﻰ String Controlﻻ ﻳﺘﻢ ﺗﻐﻴﻴﺮ ﻗﻴﻤﺔ Terminalsاﻟﺨﺎﺻﺔ ﺑﻬﻢ ﻓﻰ Block
Diagramاﻻ ﺑﻌﺪ اﻧﺘﻬﺎء ﻋﻤﻠﻴﺔ اﻟﻜﺘﺎﺑﺔ وذﻟﻚ ﺳﻮاء ﺑﺎﻟﻀﻐﻂ Enterاو ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﻤﺎوس ﻋﻠﻰ اى
اﻟﻤﻮﺟﻮد ﻓﻰ ﺷﺮﻳﻂ اﻻدوات. ﻣﻜﺎن اﺧﺮ ﺧﺎرج Controlاو ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺰرار
وذﻟﻚ ﺣﺘﻰ ﻻ ﻳﺘﻢ ﻗﺮاءة اﻟﻨﺺ ﻏﻴﺮ آﺎﻣﻞ ﻗﺒﻞ اﻻﻧﺘﻬﺎء ﻣﻦ آﺘﺎﺑﺘﻪ .
وﻟﻜﻦ اذا اردت ان ﻳﺘﻢ ﺗﺤﺪﻳﺚ ﻗﻴﻤﺔ Terminalاﺛﻨﺎء اﻟﻜﺘﺎﺑﺔ ﻓﺎﻧﻨﺎ ﻧﻔﻌﻞ اﻟﺨﺎﺻﻴﺔ Update Value
while Type
7
8
وﻳﺘﻢ ﺗﻔﻌﻴﻞ ﺧﺎﺻﻴﺔ Update Value while Typingﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ String
9
10
) Tablesاﻟﺠﺪاول(
Tableﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﻣﻦ Stringsﻳﺘﻢ ﻋﺮﺿﻬﺎ ﻓﻰ هﻴﺌﺔ ﺻﻔﻮف واﻋﻤﺪة ﻣﺜﻞ اى
ﻣﺼﻔﻮﻓﺔ.
وﻳﻤﻜﻦ اﻇﻬﺎر ) Columns Headerﻟﻜﺘﺎﺑﺔ اﺳﻤﺎء ﻟﻼﻋﻤﺪة( واﻳﻀﺎ ) Rows Headerﻟﻜﺘﺎﺑﺔ اﺳﻤﺎء
اﻟﺼﻔﻮف( ﻟـ Tableوﻳﺘﻢ ذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Tableواﺧﺘﻴﺎر
Visible Items>>Column Headers
ﻻﻇﻬﺎر Column Headerاو
11
Visible Items>>Row Headers
ﻻﻇﻬﺎر Row Headers
آﻤﺎ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ او ﻗﺮاءة اﺳﻤﺎء اﻟﺼﻔﻮف واﻻﻋﻤﺪة ﻣﻦ ﺧﻼل Block Diagramﺑﺎﺳﺘﺨﺪام
.Property Node
12
ﻣﻠﺤﻮﻇﺔ :
آﻤﺎ ذآﺮﻧﺎ ﻓﺎن Tableﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ ﻣﻦ Stringsوﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﺪوال اﻟﺨﺎﺻﺔ
ﺑﺎﻟﻤﺼﻔﻮﻓﺎت ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ Tableوﻟﻤﺰﻳﺪ ﻣﻦ اﻟﻤﻌﻠﻮﻣﺎت ﺣﻮل هﺬة اﻟﺪوال راﺟﻊ اﻟﺪرس اﻟﺴﺎدس
.Arrays and Clusters
13
ﻳﻮﺟﺪ Display Indexﺧﺎص ﺑـ Tableﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت وهﻮ ﻳﺤﺪد رﻗﻢ اﻟﺼﻒ واﻟﻌﻤﻮد ﻻول ﺧﻠﻴﺔ
ﺗﻈﻬﺮ ﻓﻰ اﻟﺮآﻦ اﻟﻌﻠﻮى اﻻﻳﺴﺮ ﻟـ .Table
14
Listboxs
Multi-Column Listbox وListbox هﻤﺎLabVIEW ﻓﻰListboxes ﻳﻮﺟﺪ ﻧﻮﻋﺎن ﻣﻦ
وﻳﺘﻢ ادراﺟﻬﻤﻬﺎ ﻣﻦ
Controls Palette>>Modern>> List & Table
Items اﺛﻨﺎء ﺗﺼﻤﻴﻢ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻦ اﻟﻜﺘﺎﺑﺔEdit Mode وﻓﻰItem ﻳﺴﻤﻰListbox وآﻞ ﺳﻄﺮ ﻓﻰ
. Labeling اوOperating ﺑﻮاﺳﻄﺔ اﻻداةListbox ﻓﻰ
15
آﻤﺎ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ Itemsﻣﻦ ﺧﻼل Block Diagramﺑﺎﺳﺘﺨﺪام .Property Node
ﻓﻰ اﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ان ﻳﺨﺘﺎر ﻣﻦ Itemsﻓﻰ Listboxﺑﺎﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ .و ﻗﻴﻤﺔ
(Listbox Value) Listboxهﻰ رﻗﻢ اﻟﺼﻒ اﻟﺬى اﺧﺘﺎرﻩ اﻟﻤﺴﺘﺨﺪم او ﻣﺼﻔﻮﻓﺔ ارﻗﺎم اﻟﺼﻔﻮف
اﻟﺘﻰ اﺧﺘﺎرهﺎ اﻟﻤﺴﺘﺨﺪم آﻤﺎ ﺳﻴﺘﻀﺢ.وﻳﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪم ان ﻳﺨﺘﺎر Itemواﺣﺪ او اآﺜﺮ ﻣﻦ Itemوذﻟﻚ
وﻓﻘﺎ ﻟﻤﻨﻂ اﻻﺧﺘﻴﺎر ).(Selection Mode
اﻟﻨﻤﻂ : 1 Itemﻳﺴﺘﻄﻴﻊ اﻟﻤﺴﺘﺨﺪم ان ﻳﺨﺘﺎر Itemواﺣﺪ ﻓﻘﻂ وﻻﺑﺪ ان ﻳﻜﻮن هﻨﺎك Itemﻣﺨﺘﺎر.
اﻟﻨﻤﻂ :1 or Moreﻣﺜﻞ اﻟﻨﻤﻂ اﻟﺴﺎﺑﻖ وﻟﻜﻦ ﻻﺑﺪ ان ﻳﻜﻮن ﻋﻠﻰ اﻻﻗﻞ Itemواﺣﺪ ﻣﺨﺘﺎر.
16
17
وﻓﻰ ﺣﺎﻟﺔ اﻟﻨﻤﻄﻴﻦ اﻻﺧﺮﻳﻦ ﻳﻜﻮن ﺧﺮج Listboxﻋﺒﺎرة ﻋﻦ ﻣﺼﻔﻮﻓﺔ ﻓﻴﻬﺎ ارﻗﺎم Itemsاﻟﺘﻰ ﺗﻢ
اﺧﺘﻴﺎرهﺎ.وﻋﺪد ﻋﻨﺎﺻﺮ هﺬة اﻟﻤﺼﻔﻮﻓﺔ هﻰ ﻋﺪد Itemsاﻟﺘﻰ ﺗﻢ اﺧﺘﻴﺎرهﺎ.
18
ﻣﻠﺤﻮﻇﺔ :ﻻﺧﺘﻴﺎر اآﺜﺮ ﻣﻦ :Itemﻧﺨﺘﺎر اول Itemﺛﻢ ﻧﻀﻐﻂ اﻟﻤﻔﺘﺎح Ctrlﻋﻨﺪ اﺧﺘﻴﺎر ﺑﺎﻗﻰ .Items
و Listboxsﻣﻔﻴﺪة اذا اردت ان ﺗﻌﺮض ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ ﻣﺠﻤﻮﻋﺔ ﺻﻔﻮف هﺬة اﻟﺼﻔﻮف ﻳﻤﻜﻦ
ان ﺗﻜﻮن ﻓﻰ ﻋﻤﻮد واﺣﺪ اوﻣﻘﺴﻤﺔ ﻟﻌﺪة اﻋﻤﺪة وﺗﺮﻳﺪ ﻣﻦ اﻟﻤﺴﺘﺨﺪم ان ﻳﺨﺘﺎر اﺣﺪ هﺬة اﻟﺒﻴﺎﻧﺎت او اآﺜﺮ.
اذا آﺎﻧﺖ اﺣﺪ اﻟﺨﻼﻳﺎ ﻓﻰ ListBoxﻻ ﺗﺴﻊ اﻟﻨﺺ اﻟﻤﻮﺟﻮد ﺑﻬﺎ ﻓﺎﻧﻪ ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺢ ووﺿﻊ اﻟﻤﺆﺷﺮ
ﻋﻠﻰ هﺬة اﻟﺨﻠﻴﺔ ﻓﺎن Tip Stripﺗﻈﻬﺮ ﺑﻬﺎ اﻟﻨﺺ اﻟﻤﻮﺟﻮد ﻓﻰ اﻟﺨﻠﻴﺔ آﺎﻣﻼ.
آﻤﺎ ﻳﻤﻜﻦ ان ﻧﺠﻌﻞ ﺧﻼﻳﺎ اى ﻋﻤﻮد ﺗﺤﺘﻮى ﻋﻠﻰ اآﺜﺮ ﻣﻦ ﺳﻄﺮ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻟﻌﻤﻮد ﺑﺎﻟﺰر اﻻﻳﻤﻦ
ﻟﻠﻤﺎوس وﻧﺨﺘﺎر Multi-line Inputﺛﻢ ﻧﺴﺘﻄﻴﻊ ان ﻧﻜﺘﺐ اآﺜﺮ ﻣﻦ ﺳﻄﺮ ﻓﻰ اﻟﺨﻠﻴﺔ ﺑﻮاﺳﻄﺔ اﻟﻀﻐﻂ
ﻋﻠﻰ .Enter
19
ﻻ ﻳﺴﺘﻄﻴﻊ اﻟﻤﺴﺘﺨﺪم ﺗﻌﺪﻳﻞ ﻣﺤﺘﻮى ﺧﻼﻳﺎ Listboxاﺛﻨﺎء ﺗﻨﻔﻴﺬ اﻟﺒﺮﻧﺎﻣﺞ وﻟﺠﻌﻞ هﺬا ﻣﻤﻜﻨﺎ ﻧﻀﻐﻂ ﺑﺎﻟﺰر
اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Listboxوﻧﺨﺘﺎر اﻟﺨﺎﺻﻴﺔ .Editable Cells
20
ﻋﻨﺪ اﺧﺘﻴﺎر اى ﺻﻒ ﻓﻰ Listboxﻳﺘﻢ ﺗﻈﻠﻴﻞ اول ﺧﻠﻴﺔ ﻣﻦ اﻟﻴﺴﺎر ﻓﻰ هﺬا اﻟﺼﻒ وﻟﺘﻈﻠﻴﻞ اﻟﺼﻒ آﻠﻪ
ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ Listboxوﻧﺨﺘﺎر
Selection Mode>>Highlight Entire Row
ﻳﻤﻜﻦ ﺿﺎﻓﺔ ﺻﻒ او ﻋﻤﻮد او ﺣﺬف او ﻋﻤﻮد وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اى
ﺻﻒ او ﻋﻤﻮد
21
اﻟﺪوال اﻟﺨﺎﺻﺔ ﺑـ Strings
ﻣﺜﻞ اﻟﻤﺼﻔﻮﻓﺎت ﺗﻮﺟﺪ دوال آﺜﻴﺮة ﻓﻰ LabVIEWﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ Stringsوﻟﺴﻮف ﻧﺘﻌﺮف ﻋﻠﻰ اهﻢ
هﺬة اﻟﺪوال.وﻳﺘﻢ ادراج هﺬة اﻟﺪوال ﻣﻦ
Functions Palette>>Programming>>String
ﻣﺜﺎل
22
اﻟﺪاﻟﺔ Concatenate Strings
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺪﻣﺞ اآﺜﺮ ﻣﻦ Stringﺑﺎﻟﺘﺮﺗﻴﺐ ﻟﺘﻜﻮﻳﻦ Stringواﺣﺪ.
ﻳﻤﻜﻦ ﻣﺪ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻻﺳﻔﻞ ﺑﻮاﺳﻄﺔ اﻻداة Positioningﻟﺰﻳﺎدة ﻋﺪد اﻟﻤﺪاﺧﻞ ﻟﻠﺪاﻟﺔ وزﻳﺎدة ﻋﺪد
Stringsاﻟﺘﻰ ﻳﻤﻜﻦ ادﻣﺎﺟﻬﺎ.
ﻣﺜﺎل
23
آﻤﺎ ﻳﻤﻜﻦ ان ﻳﻜﻮن اﻟﻤﺪﺧﻞ ﻟﻬﺬة اﻟﺪاﻟﺔ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ ﻣﻦ Stringsوﺳﺘﻘﻮم اﻟﺪاﻟﺔ ﺑﺪﻣﺞ
Stringsاﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ ﺑﺎﻟﺘﺮﺗﻴﺐ واﺧﺮاﺟﻬﺎ ﻓﻰ Stringواﺣﺪ.
وﺗﻔﻴﺪ داﻟﺔ Concatenate Stringsآﺜﻴﺮا ﻓﻰ ﺗﻜﻮﻳﻦ اﻻواﻣﺮ اﻟﺘﻰ ﻧﺮﻳﺪ ارﺳﺎﻟﻬﺎ اﻟﻰ اﺟﻬﺰة اﻟﻘﻴﺎس او
ﺗﻜﻮﻳﻦ ﺳﻄﻮر ﻣﻌﻴﻨﺔ ﻧﺮﻳﺪ ﺗﺨﺰﻳﻨﻬﺎ ﻓﻰ ﻣﻠﻒ.
ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻧﺤﺘﺎج اﻟﻰ ﺗﺤﻮﻳﻞ اﻻرﻗﺎم اﻟﻰ ﻧﺼﻮص ) (Stringواﻳﻀﺎ اﺳﺘﺨﻼص اﻻرﻗﺎم ﻣﻦ
اﻟﻨﺼﻮص وﺗﻮﺟﺪ دوال آﺜﻴﺮة ﺗﻘﻮم ﺑﻬﺬة اﻟﻤﻬﺎم وﻟﻜﻦ ﺳﻨﺘﻌﺮف ﻋﻠﻰ اهﻢ هﺬة اﻟﺪوال وهﻤﺎ اﻟﺪاﻟﺔ
Format into Stringو اﻟﺪاﻟﺔ Scan from Stringوﺳﻨﺘﻌﺮف ﻋﻠﻰ اﻟﺪاﻟﺔ Format into
Stringﻓﻰ هﺬا اﻟﺠﺰء وﺑﻌﺪ ﻗﻠﻴﻞ ﺳﻨﺘﻌﺮف ﻋﻠﻰ اﻟﺪاﻟﺔ .Scan from String
اﻟﺪاﻟﺔ Format into String
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺘﺤﻮﻳﻞ اﻧﻮاع ﻣﺨﺘﻠﻔﺔ ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﻰ ﻧﺺ ) (Stringﺑﺎﻟﺸﻜﻞ اﻟﺬى ﻧﺮﻳﺪﻩ.
وﻳﻤﻜﻦ ان ﺗﻜﻮن هﺬة اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ ﺗﺤﻮﻳﻠﻬﺎ اﻟﻰ ﻧﺺ ﻋﺒﺎرة ﻋﻦ :
ﻧﺺ ﻧﺮﻳﺪﻩ ﺑﺸﻜﻞ اﺧﺮ.
) File Pathﻣﺴﺎر ﻟﻤﻠﻒ(.
24
Enumerated Typeﺷﺒﻴﻪ ﺑـ .ListBox
Time Stampﻳﺤﺘﻮى ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﻮﻗﺖ و اﻟﺘﺎرﻳﺦ )راﺟﻊ اﻟﺪرس اﻟﺴﺎﺑﻖ(.
) Booleanرﻗﻢ ﺛﻨﺎﺋﻰ(.
رﻗﻢ ﺻﺤﻴﺢ او ﺑﻪ آﺴﺮ ﻋﺸﺮى ) Integerاو . (Float
وﻳﻜﺜﺮ اﺳﺘﺨﺪام هﺬة اﻟﺪاﻟﺔ ﻟﺘﺤﻮﻳﻞ اﻻرﻗﺎم اﻟﻰ ﻧﺼﻮص
25
-1ﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ اﻟﻤﺪﺧﻞ Format Stringﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ ﻣﺮﺗﻴﻦ ﻣﺘﺎﻟﻴﺘﻴﻦ او اﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ
ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس و اﺧﺘﻴﺎر Edit Format Stringﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﺗﺤﺪﻳﺪ Format String
وﻳﺘﻮﻗﻒ ﻧﻮع اﻟﻌﻤﻠﻴﺔﻋﻠﻰ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺪاﺧﻠﺔ و اﻟﺸﻜﻞ اﻟﻤﺮاد ﺗﺤﻮﻳﻠﻬﺎ اﻟﻴﻪ.
ﻣﺜﺎل
26
-2آﺘﺎﺑﺔ Format Stringﻳﺪوﻳﺎ
وآﻤﺎ ذآﺮﻧﺎ ﻳﺘﻜﻮن Format Stringﻣﻦ اﻟﻌﻼﻣﺔ .%وﺳﻮف ﻧﻌﺮض آﻴﻔﻴﺔ آﺘﺎﺑﺔ Format String
ﻟﺘﺤﻮﻳﻞ ﺑﻌﺾ اﻟﺒﻴﺎﻧﺎت آﺜﻴﺮة اﻻﺳﺘﺨﺪام اﻟﻰ .String
وﺳﻮف ﻧﺴﺘﻌﺮض ﺑﻌﺾ اﻻﺷﻜﺎل اﻟﻤﺨﺘﻠﻔﺔ ﻟـ Format String
27
ﺗﺤﻮﻳﻞ ارﻗﺎم ﺑﻬﺎ آﺴﺮ ﻋﺸﺮى ﻣﻦ اﻟﻨﻮع Float
ﻳﻜﻮن Format Stringﺑﻬﺬا اﻟﺸﻜﻞ % number1.number2 f
ﺣﻴﺚ Number1ﻳﺤﺪد ﻋﺪد اﺣﺮف Stringاﻟﻨﺎﺗﺞ .
و Number2ﻳﺤﺪد ﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ .
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ ﻋﺪم آﺘﺎﺑﺔ Number 1او Number2واﻻآﺘﻔﺎء ﺑـ %f
اﻣﺜﻠﺔ:
28
ﻳﻤﻜﻦ اﻳﻀﺎ ان ﻧﻜﺘﺐ Initial Stringداﺧﻞ Format String
29
وﻳﻤﻜﻦ اﻳﻀﺎ ان ﻧﺴﺘﺨﺪم اﻟﺤﺮف fﻣﻊ ﺗﺤﺪﻳﺪ ان ﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ ﻳﺴﺎوى . 0
ﺗﺤﻮﻳﻞ اﻟﻨﺼﻮص
ﻳﻤﻜﻦ ان ﻳﻜﻮن اﻟﺒﻴﺎﻧﺎت اﻟﺪاﺧﻠﺔ ﻧﺺ ﻓﻨﺴﺘﺨﺪم اﻟﺤﺮف sﻓﻰ . Format String
30
آﻤﺎ ﻳﻤﻜﻦ ان ﺗﺘﺤﻮل ﻗﻴﻤﺔ Booleanاﻟﻰ آﻠﻤﺘﻰ TRUEاو FALSEﻓﻰ Result Stringوذﻟﻚ
ﺑﺎﺳﺘﺨﺪام اﻟﺤﺮف .s
ﻳﻮﺟﺪ اﺷﻜﺎل اﺧﺮى ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻳﻤﻜﻦ ﺗﺤﻮﻳﻠﻬﺎ وﻳﻤﻜﻨﻚ اﺳﺘﺨﺪام Edit Format Stringﻟﻠﺘﻌﺮف ﻋﻠﻴﻬﺎ
اآﺜﺮ او اﻻﻃﻼع ﻋﻠﻰ .Help
31
وﻟﻬﺬة اﻟﺪاﻟﺔ ﺛﻼث ﻣﺪاﺧﻞ :
: Date Formatﻳﺤﺪد ﺷﻜﻞ اﻟﺘﺎرﻳﺦ اﻟﺬى ﺳﻨﺤﺼﻞ ﻋﻠﻴﻪ وﻗﻴﻤﻬﺎ آﺎﻟﺘﺎﻟﻰ:
) (Short) (0وﻳﻜﻮن اﻟﺘﺎرﻳﺦ ﺑﻬﺬا اﻟﺸﻜﻞ .1/21/94
)(Long) (1وﻳﻜﻮن اﻟﺘﺎرﻳﺦ ﺑﻬﺬا اﻟﺸﻜﻞ .Friday, January 21, 1994
)(Abbreviated) (2وﻳﻜﻮن اﻟﺘﺎرﻳﺦ ﺑﻬﺬا اﻟﺸﻜﻞ .Fri, Jan 21, 1994
:Time Stampوهﻮ Time Stampاﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ اﻟﻠﺬﻳﻦ ﺳﺘﺨﺮﺟﻬﻢ اﻟﺪاﻟﺔ
اذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﺗﺨﺮج اﻟﺪاﻟﺔ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ اﻟﺤﺎﻟﻴﻴﻦ )وﻗﺖ ﺗﻨﻔﻴﺬ اﻟﺪاﻟﺔ(.
:Want secondsﻳﺘﻢ ﺗﻮﺻﻴﻞ اﻟﻰ هﺬا اﻟﻤﺪﺧﻞ ﻗﻴﻤﺔ :
Trueﻻﻇﻬﺎر اﻟﺜﻮاﻧﻰ ﻣﻊ اﻟﻮﻗﺖ.
Falseﻟﻌﺪم اﻇﻬﺎر اﻟﺜﻮاﻧﻰ ﻣﻊ اﻟﻮﻗﺖ وهﺬا هﻰ اﻟﺤﺎﻟﺔ اﻟﻌﺎدﻳﺔ.
اى اذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﻓﺎن ﻗﻴﻤﺘﻪ ﺗﻜﻮن False
وﻻ ﻳﺘﻢ اﻇﻬﺎر اﻟﺜﻮاﻧﻰ ﻣﻊ اﻟﻮﻗﺖ.
اﻣﺜﻠﺔ :
32
33
اﻟﺪاﻟﺔ Format Date/Time String
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺎﺧﺮاج Stringﺑﻪ ﻣﻌﻠﻮﻣﺎت ﻣﺤﺪدة ﻣﻦ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ ﻣﺜﻞ اﺳﻢ اﻟﺸﻬﺮ او اﺳﻢ
اﻻﺳﺒﻮع .واﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ ﻳﻤﻜﻦ ان ﻳﻜﻮﻧﺎ ﻣﻦ Time Stampاو Numericﻳﻮﺻﻞ ﺑﻤﺪﺧﻞ اﻟﺪاﻟﺔ او
ﻳﻜﻮﻧﺎ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ اﻟﺤﺎﻟﻴﻴﻦ اذا ﻟﻢ ﻳﻮﺻﻞ Time Stampاو Numericاﻟﻰ ﻣﺪﺧﻞ اﻟﺪاﻟﺔ.وهﺬة
اﻟﺪاﻟﺔ اآﺜﺮ ﺷﻤﻮﻟﻴﺔ ﻣﻦ اﻟﺪاﻟﺔ Get Date/Time String
وﻳﺘﻢ ادراج هﺬة اﻟﺪاﻟﺔ ﻣﻦ
Functions Palette>>Programming>>Timing
وﻳﺘﻢ ﺗﻮﺻﻴﻞ Time Stampاو Numericاﻟﻰ اﻟﻤﺪﺧﻞ Time Stampﻳﺤﺘﻮﻳﺎن ﻋﻠﻰ اﻟﻮﻗﺖ
واﻟﺘﺎرﻳﺦ واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﻳﻜﻮن اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ هﻮ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ اﻟﺤﺎﻟﻴﻴﻦ.
وﻳﺤﺪد اﻟﻤﺪﺧﻞ Time Format Stringاﻟﻤﻌﻠﻮﻣﺔ اﻟﺘﻰ ﻧﺮﻳﺪهﺎ و ﺷﻜﻠﻬﺎ.
وﻳﺤﺘﻮى Time Format Stringﻋﻠﻰ اآﻮاد آﻞ آﻮد ﻳﺤﺪد ﺷﻜﻞ اﻟﻤﻌﻠﻮﻣﺔ اﻟﺘﻰ ﺳﺘﺨﺮج وهﺬة اﻻآﻮاد
ﻳﻤﻜﻦ ان ﺗﻜﻮن آﺎﻟﺘﺎﻟﻰ:
ﻣﻌﻨﻰ اﻟﻜﻮد اﻟﻜـﻮد
اﺳﻢ اﻟﻴﻮم ﻣﺨﺘﺼﺮ ﻣﺜﻞ Sat %a
اﺳﻢ اﻟﺸﻬﺮ ﻣﺨﺘﺼﺮ ﻣﺜﻞ Feb %b
اﻟﻮﻗﺖ و اﻟﺘﺎرﻳﺦ آﻤﺎ ﻓﻰ اﻋﺪادات ﺟﻬﺎزك %c
رﻗﻢ اﻟﻴﻮم ﻣﻜﻮن ﻣﻦ ﺧﺎﻧﺘﻴﻦ ﻣﺜﺎل 21 %d
رﻗﻢ ﻳﻤﺜﻞ اﻟﺴﺎﻋﺔ ﺑﻨﻈﺎم 24ﺳﺎﻋﺔ %H
رﻗﻢ ﻳﻤﺜﻞ اﻟﺴﺎﻋﺔ ﺑﻨﻈﺎم 12ﺳﺎﻋﺔ %I
رﻗﻢ ﻣﻜﻮن ﻣﻦ ﺧﺎﻧﺘﻴﻦ ﻳﻤﺜﻞ اﻟﺸﻬﺮ ﻣﺜﻞ 03 %m
رﻗﻢ ﻳﻤﺜﻞ ﻋﺪد اﻟﺪﻗﺎﺋﻖ %M
اﺣﺪى اﻟﻌﻼﻣﺘﻴﻦ AMاو PMاﻟﻠﺘﺎن ﺗﻌﻨﻴﺎن ﺻﺒﺎﺣﺎ او ﻣﺴﺎءا %p
رﻗﻢ ﻳﻤﺜﻞ ﻋﺪد اﻟﺜﻮاﻧﻰ ﻓﻰ اﻟﻮﻗﺖ %S
34
اﻟﺘﺎرﻳﺦ ﺑﺎﻟﻨﻈﺎم اﻟﻤﺤﻠﻰ %x
اﻟﻮﻗﺖ ﺑﺎﻟﻨﻈﺎم اﻟﻤﺤﻠﻰ %X
رﻗﻢ ﻣﻜﻮن ﻣﻦ ﺧﺎﻧﺘﻴﻦ ﻳﻤﺜﻞ ﻋﺪد اﻟﺴﻨﻴﻦ ﻓﻰ اﻟﻘﺮن ﻣﺜﺎل 08 %y
رﻗﻢ ﻳﻤﺜﻞ اﻟﻌﺎم ﻣﺘﻀﻤﻨﺎ اﻟﻘﺮن ﻣﺜﺎل 2008 %Y
ﺟﺰء ﻣﻦ اﻟﺜﺎﻧﻴﺔ ﺣﻴﺚ ﻳﻤﺜﻞ digitﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ %<digit>u
ﻣﺜﺎل 0.465 ﻣﺜﺎل %3u
ﻣﻠﺤﻮﻇﺔ :اذا ﻟﻢ ﻳﻮﺻﻞ اﻟﻤﺪﺧﻞ Time Format Stringﻓﺎﻧﻪ ﻳﺄﺧﺬ اﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ ﻟﻪ وهﻰ %c
واﻟﺘﻰ ﻣﻌﻨﺎهﺎ اﻟﻮﻗﺖ واﻟﺘﺎرﻳﺦ آﻤﺎ ﻓﻰ اﻋﺪادات ﺟﻬﺎزك.
ﻣﻠﺤﻮﻇﺔ :ﻳﻤﻜﻦ ان ﻳﺤﺘﻮى Time Format Stringﻋﻠﻰ اآﺜﺮ ﻣﻦ آﻮد ﺑﺠﺎﻧﺐ اﻳﻀﺎ اى ﺣﺮوف او
رﻣﻮزوﺳﺘﻈﻬﺮ هﺬة اﻟﺮﻣﻮز واﻟﺤﺮوف آﻤﺎ هﻰ ﻓﻰ Stringاﻟﻨﺎﺗﺞ.
35
Parsing Factions
ﻓﻰ آﺜﻴﺮ ﻣﻦ اﻻﺣﻴﺎن ﻳﻜﻮن ﻟﺪﻳﻚ ﻧﺺ ﺗﻢ اﻟﺤﺼﻮل ﻋﻠﻴﻪ ﻣﺜﻼ ﻣﻦ اﺳﺘﻘﺒﺎل ﺑﻴﺎﻧﺎت ﻣﻦ ﺟﻬﺎز ﻗﻴﺎس او ﺗﻢ
ﻗﺮاءﺗﻪ ﻣﻦ ﻣﻠﻒ .وﺗﺤﺘﺎج اﻟﻰ ﺗﻔﺴﻴﺮ هﺬا اﻟﻨﺺ او اﺳﺘﺨﻼص ﺑﻌﺾ اﻟﻤﻌﻠﻮﻣﺎت ﻣﻨﻪ ﻣﺜﻞ رﻗﻢ ﻳﻤﺜﻞ ﻗﻴﻤﺔ
اﻟﻘﻴﺎس.وﺗﻮﺟﺪ دوال ﺗﺴﺎﻋﺪ ﻓﻰ ﺗﻔﺴﻴﺮ اﻟﻨﺼﻮص وﺳﻨﺴﺘﻌﺮض ﺑﻌﺾ هﺬة اﻟﺪوال.
اﻟﺪاﻟﺔ String Subset
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺎﺳﺘﻘﻄﺎع ﺟﺰء ﻣﻦ . String
36
اﻟﺪاﻟﺔ Scan from String
وﻇﻴﻔﺔ هﺬة اﻟﺪاﻟﺔ هﻰ ﻋﻜﺲ وﻇﻴﻔﺔ اﻟﺪاﻟﺔ Format into Stringﻓﻬﻰ ﺗﻘﻮم ﺑﺎﺳﺘﺨﻼص اﻻﻋﺪاد
اﻟﺮﻗﻤﻴﺔ ﻣﻦ . Stringsﻓﺎﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﺘﺤﻮﻳﻞ ﻣﺠﻤﻮﻋﺔ ﺣﺮوف ﻓﻰ Stringﺗﻤﺜﻞ ﻋﺪد اﻟﻰ ﻗﻴﻤﺔ رﻗﻤﻴﺔ
وهﺬة اﻟﺤﺮوف ﻗﺪ ﺗﺸﻤﻞ ﻋﻠﻰ ) 0اﻟﻰ 9او +او – او eاو Eاو ﻧﻘﻄﺔ (
37
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ Format Stringﺑﻜﺘﺎﺑﺘﻪ ﻳﺪوﻳﺎ وﻻﺳﺘﺨﻼص ﻗﻴﻤﺔ ﻋﺪدﻳﺔ ﻣﻦ Stringﻧﻜﺘﺐ داﺧﻞ
Format Stringاﻟﻌﻼﻣﺔ %واﻟﺤﺮف fهﻜﺬا . %f
وﻳﻤﻜﻦ اﺳﺘﺨﺪام اﻟﻨﺎﻓﺬة Edit Scan Stringﻟﺘﺤﺪﻳﺪ Format Stringوذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻣﺮﺗﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻴﻦ
ﺑﺎﻟﺰر اﻻﻳﺴﺮ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﺪاﻟﺔ او اﻟﻀﻐﻂ ﻋﻠﻰ اﻟﺪاﻟﺔ ﺑﺎﻟﺰر اﻻﻳﻤﻦ واﺧﺘﻴﺎر .Edit Scan String
وﺑﻌﺪ ﺗﺤﺪﻳﺪ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ اﺳﺘﺨﻼﺻﻬﺎ ﺳﻴﺘﻢ وﺿﻊ Format Stringﺗﻠﻘﺎﺋﻴﺎ وﺳﻴﻜﻮن ﻣﻮﺻﻼ
ﺑﺎﻟﺪاﻟﺔ.
ﻻﺣﻆ ان Format Stringو Scan Stringﻳﻌﺒﺮان ﻋﻦ ﻧﻔﺲ اﻟﻤﻌﻨﻰ وهﻮ ﻧﻮع وﺷﻜﻞ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ
ﻧﺮﻳﺪ اﺳﺘﺨﻼﺻﻬﺎ.
38
اﻣﺜﻠﺔ
ﻳﻤﻜﻦ آﺘﺎﺑﺔ ﻧﺺ ﺛﺎﺑﺖ ﻓﻰ Format Stringوﺳﻴﺘﻢ اﺳﺘﺨﻼﺻﻪ ﻣﻦ Stringوﻳﺨﺮج آﻤﺎ هﻮ وﺗﻔﻴﺪ هﺬة
اﻟﻄﺮﻳﻘﺔ ﻓﻰ اﺳﺘﺨﻼص ﺷﻜﻞ ﻣﻌﻴﻦ ﻣﻜﻮن ﻣﻦ ﻧﺺ و ﻋﺪد آﻤﺎ ﻳﺘﻀﺢ ﻣﻦ اﻟﻤﺜﺎل.
39
وﻳﻤﻜﻦ ﻋﻤﻞ ذﻟﻚ ﻣﻦ ﺧﻼل ﻧﺎﻓﺬة Edit Scan Stringوذﻟﻚ ﺑﺘﺤﺪﻳﺪ اﻟﻌﻤﻠﻴﺔ Match Exact
Stringوآﺘﺎﺑﺔ Tempﺛﻢ اﺿﺎﻓﺔ ﻋﻤﻠﻴﺔ وﺟﻌﻠﻬﺎ اﻟﻌﻤﻠﻴﺔ .Scan Number
40
:Regular Expressionوهﻰ ﺻﻴﻐﺔ ﺗﺤﺘﻮى ﻋﻠﻰ ﺣﺮوف ورﻣﻮز ﻟﺘﺤﺪﻳﺪ ﺷﻜﻞ اﻟﻨﺺ اﻟﺬى ﻧﺮﻳﺪﻩ
وﺳﻨﻮﺿﺢ آﻴﻔﻴﺔ آﺘﺎﺑﺔ هﺬة اﻟﺼﻴﻐﺔ.
:Offsetوهﻰ رﻗﻢ اﻟﺤﺮف ﻓﻰ Stringاﻟﺬى ﺳﻨﺒﺪأ ﻣﻨﻪ ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ وﻗﻴﻤﺔ هﺬا اﻟﻤﺪﺧﻞ اذا ﻟﻢ ﻳﺘﻢ
اﻟﺘﻮﺻﻴﻞ اﻟﻴﻪ هﻰ .0
وﻧﻼﺣﻆ اﻧﻪ ﺑﻌﺪ ﻋﻤﻠﻴﺔ اﻟﺒﺤﺚ ﺗﻢ ﺗﻘﺴﻴﻢ Stringاﻟﻰ ﺛﻼﺛﺔ اﺟﺰاء ﺑﻨﺎء ﻋﻠﻰ ﺻﻴﻐﺔ .Regular Expression
واذا ﻟﻢ ﻳﺘﻢ اﻳﺠﺎد اﻟﻨﺺ اﻟﻤﺮاد داﺧﻞ Stringﻓﺎن اﻟﻤﺨﺎرج ﺗﻜﻮن ﻗﻴﻤﻬﺎ آﺎﻟﺘﺎﻟﻰ:
: Before Substringﻳﺤﺘﻮى ﻋﻠﻰ آﻞ ﻣﺤﺘﻮى Stringاﻟﺬى ﻧﺒﺤﺚ ﻓﻴﻪ.
: Match Stringﺗﻜﻮن ﻓﺎرﻏﺔ.
:After Substringﺗﻜﻮن ﻓﺎرﻏﺔ.
: Offset Past Matchﻳﻜﻮن ﻗﻴﻤﺘﻪ ﺑـ 1-ﻣﻤﺎ ﻳﻌﻨﻰ اﻧﻪ ﻟﻢ ﻳﺘﻢ اﻳﺠﺎد اﻟﻨﺺ اﻟﻤﺮاد داﺧﻞ .String
ﻣﺜﺎل :ﻳﻤﻜﻦ ان ﻳﻜﻮن Regular Expressionﻋﺒﺎرة ﻋﻦ آﻠﻤﺔ ﻧﺮﻳﺪ ان ﻧﺒﺤﺚ ﻋﻨﻬﺎ ﻓﻰ .String
41
وﻳﻤﻜﻦ ان ﺗﺤﺘﻮى Regular Expressionﻋﻠﻰ رﻣﻮز ﺧﺎﺻﺔ ﻟﺘﺤﺪﻳﺪ ﺷﻜﻞ اﻟﻨﺺ اﻟﺬى ﻧﺮﻳﺪ اﻟﺒﺤﺚ
ﻋﻨﻪ وﻟﻜﻞ رﻣﺰ دﻻﻟﺔ او ﻣﻌﻨﻰ وﺳﻨﺴﺘﻌﺮض هﺬة اﻟﺮﻣﻮز وﻣﻌﻨﺎهﺎ:
ﻣﻌﻨﺎﻩ ﻣﻦ ﺧﻼل اﻟﺪاﻟﺔ Matching Pattern اﻟﺮﻣﺰ
اﻟﻨﻘﻄﺔ وﻣﻌﻨﺎهﺎ اى ﺣﺮف ﻓﻰ هﺬا اﻟﻤﻜﺎن .
ﻣﺜﺎل l.gﺗﻌﻨﻰ اﺑﺤﺚ ﻋﻦ اى آﻠﻤﺔ ﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺮف lﺛﻢ اى ﺣﺮف ﺛﻢ ﺣﺮف g
ﻣﺜﻞ اﻟﻜﻠﻤﺎت legاو lagاو lug
وﻣﻌﻨﺎهﺎ ان ﻣﺎ ﻗﺒﻠﻬﺎ ﻣﺒﺎﺷﺮة ﻗﺪ ﻻ ﻳﻜﻮن ﻣﻮﺟﻮدا او ﻣﻮﺟﻮدا ﻣﺮة واﺣﺪة ﻓﻘﻂ ?
ﻣﺜﺎل be?tﺗﻌﻨﻰ اﺑﺤﺚ ﻋﻦ آﻠﻤﺔ ﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺮف bﺛﻢ اﻟﺤﺮف tﻣﺒﺎﺷﺮة ﻣﺜﻞ btوهﻨﺎ ﺣﺮف e
اﻟﺬى هﻮ ﻗﺒﻞ اﻟﻌﻼﻣﺔ ? ﻟﻴﺲ ﻣﻮﺟﻮدا.
او ان ﺗﺘﻜﻮن اﻟﻜﻠﻤﺔ ﻣﻦ اﻟﺤﺮف bﺛﻢ اﻟﺤﺮف eﺛﻢ اﻟﺤﺮف tﻣﺜﻞ آﻠﻤﺔ betوهﻨﺎ ﺣﺮف eﻣﻮﺟﻮدا
ﻣﺮة واﺣﺪة.
واﻟﺼﻴﻐﺔ be?tﻻ ﺗﻨﻄﺒﻖ ﻋﻠﻰ اﻟﻜﻠﻤﺔ bestوذﻟﻚ ﻻن هﻨﺎك ﺣﺮف ﺑﻴﻦ eوt
وﻣﻌﻨﺎهﺎ اﻟﻐﺎء ﺗﻔﺴﻴﺮ اﻟﺮﻣﺰ اﻟﺬى ﺑﻌﺪهﺎ ﻋﻠﻰ اﻧﻪ رﻣﺰ ﺧﺎص واﻧﻤﺎ ﺗﻔﺴﻴﺮﻩ ﻋﻠﻰ اﻧﻪ ﺣﺮف ﻋﺎدى \
ﻣﺜﺎل \.ﺗﻌﻨﻰ ﻧﻘﻄﺔ ﻋﺎدﻳﺔ وﻟﻦ ﻳﺘﻢ ﺗﻔﺴﻴﺮ اﻟﻨﻘﻄﺔ ﻋﻠﻰ اﻧﻬﺎ اى ﺣﺮف آﻤﺎ ﺳﺒﻖ
واﻳﻀﺎ ?\ ﺗﻌﻨﻰ ﻋﻼﻣﺔ اﺳﺘﻔﻬﺎم وﻻ ﻳﺘﻢ ﺗﻔﺴﻴﺮ اﻟﻌﻼﻣﺔ آﻤﺎ ﺳﺒﻖ
وﺗﺴﺘﺨﺪم اﻟﻌﻼﻣﺔ \ ﻓﻰ ﺗﻤﺜﻴﻞ اﻟﺤﺮوف اﻟﻐﻴﺮ ﻗﺎﺑﻠﺔ ﻟﻠﻄﺒﺎﻋﺔ ﻓﻤﺜﻼ
\bﻣﻌﻨﺎهﺎ Backspace
\fﻣﻌﻨﺎهﺎ Form Feed
\nﻣﻌﻨﺎهﺎ New Line
42
\sﻣﻌﻨﺎهﺎ ﻣﺴﺎﻓﺔ
\rﻣﻌﻨﺎهﺎ Carriage Returnاﻟﺮﺟﻮع ﻻول اﻟﺴﻄﺮ
\tﻣﻌﻨﺎهﺎ Tab
) \xxﺣﻴﺚ xxرﻗﻢ ﺑﺎﻟﻨﻈﺎم اﻟﺴﺪاﺳﻰ ﻋﺸﺮ ( وﻣﻌﻨﺎهﺎ اﻟﺤﺮف اﻟﺬى ASCII Codeﻟﻪ هﻮ xx
ﻣﺜﺎل \41ﺗﻌﻨﻰ اﻟﺤﺮف Aآﺒﻴﺮ ﻻن ASCII Codeﻟﻪ ﺑﺎﻟﻨﻈﺎم اﻟﺴﺪاﺳﻰ ﻋﺸﺮ هﻮ 41
اذا ﺟﺎءت اول ﺣﺮف ﻓﻰ Regular Expressionﻓﻤﻌﻨﺎهﺎ اﺑﺤﺚ ﻋﻦ اﻟﺬى ﺑﻌﺪهﺎ وﻟﻜﻦ ﻓﻰ اول ^
Stringواذا آﺎن ﻟﻴﺲ اول Stringﻓﻬﻮ ﻻ ﻳﻄﺎﺑﻖ
ﻣﺜﺎل ^isﻣﻌﻨﺎهﺎ اﺑﺤﺚ ﻓﻰ Stringﺑﺤﻴﺚ ﺗﻜﻮن isاول Stringﻣﺜﻞ
is the exam easy
وﻟﻜﻦ ﻟﻦ ﻳﺤﺪث ﺗﻄﺎﺑﻖ ﻣﻊ Stringاﻟﺘﻰ ﺗﺤﺘﻮى ﻋﻠﻰ The exam is easy
وﻣﻌﻨﺎهﺎ اى ﺣﺮف ﻣﻤﺎ ﺑﺪاﺧﻠﻬﺎ ][
ﻣﺜﺎل ] [abcﺗﻌﻨﻰ اﻟﺤﺮف aاو اﻟﺤﺮف bاو اﻟﺤﺮف c
ﻣﺜﺎل [Mm]anﺗﺘﻄﺎﺑﻖ ﻣﻦ Manواﻳﻀﺎ manاى اﺑﺤﺚ ﻋﻦ آﻠﻤﺔ manﺳﻮاء آﺎن ﺣﺮف m
ﺑﻬﺎ آﺒﻴﺮ او ﺻﻐﻴﺮواﻟﺤﺮﻓﻴﻦ اﻻﺧﺮﻳﻦ anﺻﻐﻴﺮﻳﻦ.
وهﻨﺎك رﻣﻮز ﺧﺎﺻﺔ ﺗﺴﺘﺨﺪم داﺧﻞ اﻟﻘﻮﺳﻦ ] [ وهﺬة اﻟﺮﻣﻮز هﻰ
اﻟﺸﺮﻃﺔ ﻣﻌﻨﺎهﺎ ﻣﺪى ﻣﻦ اﻻرﻗﺎم او ﻣﺪى ﻣﻦ اﻟﺤﺮوف اﻟﻜﺒﻴﺮة او ﻣﺪى ﻣﻦ اﻟﺤﺮوف -
اﻟﺼﻐﻴﺮة
ﻣﺜﺎل ] [0-9ﻣﻌﻨﺎهﺎ اى رﻗﻢ ﻣﻦ 0اﻟﻰ 9
ﻣﺜﺎل ] [a-gﻣﻌﻨﺎهﺎ اى ﺣﺮف ﺻﻐﻴﺮ ﻣﻦ aاﻟﻰ g
ﻣﺜﺎل ] [L-Qﻣﻌﻨﺎهﺎ اى ﺣﺮف آﺒﻴﺮ ﻣﻦ Lاﻟﻰ Q
اﻟﺮﻣﺰﻳﻦ اﻻﺗﻴﻴﻦ ﻟﻬﻤﺎ ﻣﻌﻨﻰ ﻓﻘﻂ اذا ﺟﺎؤا آﺄول ﺣﺮف داﺧﻞ اﻟﻘﻮﺳﻴﻦ ] [
ﻣﻌﻨﺎهﺎ اى ﺣﺮف ﺳﻮاء ﻗﺎﺑﻞ ﻟﻠﻜﺘﺎﺑﺔ او ﻏﻴﺮ ﻗﺎﺑﻞ ﻟﻠﻜﺘﺎﺑﺔ ﻣﺎﻋﺪا اﻟﺤﺮوف اﻟﺘﻰ ﺑﻌﺪهﺎ او ﻓﻰ ~
اﻟﻤﺪى اﻟﺬى ﺑﻌﺪهﺎ
ﻣﺜﺎل ] [~0-9وﺗﻌﻨﻰ اى ﺣﺮف ﻣﺎﻋﺪا اﻟﺤﺮوف ﻓﻰ اﻟﻤﺪى ﻣﻦ 0اﻟﻰ 9
ﻣﻌﻨﺎهﺎ اى ﺣﺮف ﻣﻦ اﻟﺤﺮوف اﻟﻘﺎﺑﻠﺔ ﻟﻠﻜﺘﺎﺑﺔ واﻳﻀﺎ اﻟﻤﺴﺎﻓﺔ و Tabﻣﺎﻋﺪا اﻟﺤﺮوف اﻟﺘﻰ ^
ﺑﻌﺪهﺎ او ﻓﻰ اﻟﻤﺪى اﻟﺬى ﺑﻌﺪهﺎ
ﻣﺜﺎل ] [^0-9ﺗﻌﻨﻰ اى ﺣﺮف ﻗﺎﺑﻞ ﻟﻠﻜﺘﺎﺑﺔ ﺑﻤﺎ ﻓﻴﻬﺎ اﻟﻤﺴﺎﻓﺔ او Tabﻣﺎﻋﺪا اﻟﺤﺮوف ﻣﻦ 0
اﻟﻰ 9
ﻣﻌﻨﺎهﺎ اى ﻋﺪد ﻣﻦ اﻟﺤﺮف اﻟﺬى ﻗﺒﻠﻪ وﻟﻜﻦ ﻻﺑﺪ ان ﻳﻮﺟﺪ ﻋﻠﻰ اﻻﻗﻞ ﻣﺮة واﺣﺪة +
ﻣﺜﺎل be+tﺗﻌﻨﻰ اى آﻠﻤﺔ ﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺮف bﺛﻢ اى ﻋﺪد اآﺒﺮ ﻣﻦ اﻟﻮاﺣﺪ ﻣﻦ اﻟﺤﺮف eﺛﻢ
43
اﻟﺤﺮف tوهﻰ ﺗﻄﺎﺑﻖ اﻟﻜﻠﻤﺎت betو beetو beeetوﻻ ﺗﻄﺎﺑﻖ btﻻن اﻟﺤﺮف eﻳﺠﺐ ان
ﻳﺘﻮاﺟﺪ ﻋﻠﻰ اﻻﻗﻞ ﻣﺮة واﺣﺪة
ﻣﻌﻨﺎهﺎ اى ﻋﺪد ﻣﻦ اﻟﺤﺮف اﻟﺬى ﻗﺒﻠﻪ وﻳﻤﻜﻦ اﻻ ﻳﻜﻮن اﻟﺤﺮف ﻣﻮﺟﻮدا *
ﻣﺜﺎل be*tﻣﻌﻨﺎهﺎ اى آﻠﻤﺔ ﺗﺘﻜﻮن ﻣﻦ اﻟﺤﺮف bﺛﻢ ﻳﻠﻴﻪ اﻟﺤﺮف tاو ان ﻳﻜﻮن ﺑﻴﻨﻬﻤﺎ اى ﻋﺪد ﻣﻦ
اﻟﺤﺮف e
وﺗﻄﺎﺑﻖ اﻟﻜﻠﻤﺎت btو betو beetو beeetوهﻜﺬا
اذا ﺟﺎءت آﺎﺧﺮ ﺣﺮف ﻓﻰ Regular Expressionﻓﻬﻰ ﺗﻌﻨﻰ ان ﻳﻜﻮن ﻣﺎ ﻗﺒﻠﻬﺎ ﻳﻜﻮن ﻣﻮﺟﻮدا $
ﻓﻰ ﻧﻬﺎﻳﺔ String
ﻓﻤﺜﻼ deg$ﺗﺘﻄﺎﺑﻖ اذا آﺎﻧﺖ اﻟﻜﻠﻤﺔ degﻓﻰ ﻧﻬﺎﻳﺔ .String
اذا ﺟﺎء هﺬة اﻟﺮﻣﺰ ﻟﻴﺲ ﻓﻰ ﻧﻬﺎﻳﺔ Regular Expressionﻓﺴﻴﻜﻮن ﺣﺮف ﻋﺎدى وﻟﻴﺲ رﻣﺰا
ﺧﺎﺻﺎ
وهﺬة ﺑﻌﺾ اﻻﻣﺜﻠﺔ ﻟـ Regular Expressionﺑﺎﺳﺘﺨﺪام اﻟﺮﻣﻮز اﻟﺴﺎﺑﻘﺔ
اﻟﻜﻠﻤﺎت اﻟﺘﻰ ﺗﺘﻄﺎﺑﻖ ﻣﻌﻪ Regular Expression
VOLTS VOLTS
ﻣﻌﻨﺎهﺎ اﺑﺤﺚ ﻋﻦ آﻠﻤﺔ اول ﺣﺮف ﺑﻬﺎ Vآﺒﻴﺮ او ﺻﻐﻴﺮ ﺛﻢ اﻟﺤﺮف ][Vv][Oo][Ll][Tt][Ss
اﻟﺬى ﻳﻠﻴﻪ اﻟﺤﺮف Oآﺒﻴﺮا او ﺻﻐﻴﺮا ﺛﻢ اﻟﺬى ﻳﻠﻴﻪ اﻟﺤﺮف Lﺻﻐﻴﺮا او
آﺒﻴﺮا وهﻜﺬا
اى اﺑﺤﺚ ﻋﻦ آﻠﻤﺔ voltوﻳﻤﻜﻦ ان ﻳﻜﻮن اى ﺣﺮف ﻓﻴﻬﺎ آﺒﻴﺮ او ﺻﻐﻴﺮ
ﻣﺜﻞ Voltsاو VOLTSاو voltsاو vOLTsوهﻜﺬا
اﺑﺤﺚ ﻋﻦ ﻣﺴﺎﻓﺔ او ﻋﻼﻣﺔ +او ﻋﻼﻣﺔ - ][ +-
اى ﻣﺠﻤﻮﻋﺔ ﻣﻦ اﻻرﻗﺎم اﻟﻤﺘﺘﺎﺑﻌﺔ وﻋﺪد هﺬا اﻻرﻗﺎم واﺣﺪ او اآﺜﺮ [0-9]+
ﻣﺠﻤﻮﻋﺔ ﺗﺘﻜﻮن ﻣﻦ ﺣﺮف او آﺜﺮ ﻣﻦ اﻟﺤﺮوف اﻟﻤﺴﺎﻓﺔ وTabو New [\t\r\n\s]+
Lineو Carriage Return
اى ﻣﺠﻤﻮﻋﺔ ﺣﺮوف ﻋﺪدهﻢ ﻋﻠﻰ اﻻﻗﻞ واﺣﺪ وﻟﻜﻦ هﺬة اﻟﻤﺠﻤﻮﻋﺔ ﻻ [~0-9]+
ﺗﺤﺘﻮى ﻋﻠﻰ اى رﻗﻢ ﻣﻦ اﻻرﻗﺎم ﻣﻦ 0اﻟﻰ 9
ﺗﺘﻄﺎﺑﻖ اذا آﺎﻧﺖ آﻠﻤﺔ Levelﻣﻮﺟﻮد ﻓﻰ ﺑﺪاﻳﺔ String ^Level
ﻣﺜﻞ Level=10وﻻ ﺗﺘﻄﺎﺑﻖ ﻣﻊ The Level=10
ﺗﺘﻄﺎﺑﻖ اذا آﺎﻧﺖ آﻠﻤﺔ Voltﻓﻰ ﻧﻬﺎﻳﺔ String Volt$
ﻣﺜﻞ The Input =10 Voltوﻻ ﺗﺘﻄﺎﺑﻖ ﻣﻊ
The Input =10 Volt Only
44
اى ﻣﺠﻤﻮﻋﺔ ﺣﺮوف ﺑﻴﻦ ﻗﻮﺳﻴﻦ او ﻗﻮﺳﻴﻦ ﻓﺎرﻏﻴﻦ )*(.
ﻻﺣﻆ ان .ﻣﻌﻨﺎهﺎ اى ﺣﺮف
واﻟﻌﻼﻣﺔ * ﻣﻌﻨﺎهﺎ اى ﻋﺪد ﻣﻦ اﻟﺤﺮف اﻟﺬى ﻗﺒﻠﻬﺎ او ان ﻳﻜﻮن ﻏﻴﺮ
ﻣﻮﺟﻮد
وهﺬا آﻠﻪ ﺑﻴﻦ ﻗﻮﺳﻴﻦ
اى ﻣﺠﻤﻮﻋﺔ ﺣﺮوف ﺑﻴﻦ ﻗﻮﺳﻴﻦ وﻟﻜﻦ هﺬﻳﻦ اﻟﻘﻮﺳﻴﻦ ﻻ ﻳﺤﺘﻮﻳﺎن ﻋﻠﻰ )*])(~[(
اى اﻗﻮاس .
وﻳﻤﻜﻦ ان ﻳﻜﻮن اﻟﻘﻮﺳﻴﻦ ﻓﺎرﻏﻴﻦ
ﻻﺣﻆ ان ])(~[ ﺗﻌﻨﻰ اى ﺣﺮف ﻣﺎﻋﺪا اﻟﻘﻮﺳﻴﻦ
وان *])(~[ ﺗﻌﻨﻰ اى ﻋﺪد ﻣﻦ اﻟﺤﺮوف ﻣﺎﻋﺪا اﻻﻗﻮاس وﻳﻤﻜﻦ ان ﻻ
ﻳﻮﺟﺪ اى ﺣﺮف
وهﺬا آﻠﻪ ﺑﻴﻦ ﻗﻮﺳﻴﻦ )*])(~[(
اﻟﻘﻮس [ ][[
اى آﻠﻤﺔ ﺗﺒﺪأ ﺑﺎﻟﺤﺮف cاو dﺛﻢ اﻟﺤﺮف aاو oﺛﻢ اﻟﺤﺮف tاو g ][cd][ao][tg
ﻣﺜﻞ catو dogو dotو cotو cogو هﻜﺬا
وﻟﻼﻃﻼع ﻋﻠﻰ اﻣﻜﺎﻧﻴﺎت اآﺜﺮ ﻟـ Regular Expressionواﺳﺘﺨﺪاﻣﻬﺎ ﻣﻊ هﺬة اﻟﺪاﻟﺔ ﻳﻤﻜﻦ اﻻﺳﺘﻌﺎﻧﺔ
ﺑﺎﻟﺒﺤﺚ ﻓﻰ اﻻﻧﺘﺮﻧﺖ وهﻨﺎك ﻣﺼﺎدر آﺜﻴﺮة ﻓﻰ هﺬة اﻟﻤﻮﺿﻮع.
45
File Paths
ﻗﺒﻞ ان ﻧﺘﻌﺮف ﻋﻠﻰ آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت ﻧﺘﻌﺮف ﻋﻠﻰ ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻟﺘﻤﺜﻴﻞ ﻣﺴﺎرات اﻟﻤﻠﻔﺎت
.File Path وهﻮHard disk واﻟﻤﺠﻠﺪات ﻋﻠﻰ وﺣﺪات اﻟﺘﺨﺰﻳﻦ ﻣﺜﻞ
File Path Indicator وFile Path Control ﻟﺘﻤﺜﻴﻞ ﻣﺴﺎرات اﻟﻤﻠﻔﺎتLabVIEW وﻳﻮﺟﺪ ﻓﻰ
.File Path Constantو
ﻣﻦFront Panel ﻓﻰFile Path Indicator اوFile Path Control وﻳﺘﻢ ادراج
Controls Palette>>Modern>>String & Path
46
وﻳﻮﺟﺪ ﻣﻊ File Path Controlزرار ﻟﻔﺘﺢ ﻧﺎﻓﺬة ﻟﺘﺼﻔﺢ اﻟﻤﻠﻔﺎت واﻟﻤﺠﻠﺪات اﻟﻤﻮﺟﻮدة ﻋﻠﻰ وﺣﺪات
اﻟﺘﺨﺰﻳﻦ ﻟﺘﺤﺪﻳﺪ اﻟﻤﺴﺎر اﻟﺬى ﻧﺮﻳﺪﻩ.
47
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﺧﺼﺎﺋﺺ ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ وذﻟﻚ ﻣﻦ ﺧﻼل اﻟﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ File Path
Controlواﺧﺘﻴﺎر .Browse Option
ﻟﺘﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة ﻧﺤﺪد ﻓﻴﻬﺎ ﺧﺼﺎﺋﺺ ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ وآﻴﻔﻴﺔ اﺧﺘﻴﺎر اﻟﻤﻠﻔﺎت.
48
وهﺬا ﺷﻜﻞ ﻧﺎﻓﺬة اﻟﺨﺼﺎﺋﺺ ﺑﻌﺪ ﺗﺤﺪﻳﺪ ﺧﺼﺎﺋﺼﻬﺎ
49
File Input /Output
ﻧﻈﺮا ﻟﻼهﻤﻴﺔ اﻟﻜﺒﻴﺮة ﻟﺘﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ اﻟﻤﻠﻔﺎت واﺳﺘﻌﺎدﺗﻬﺎ ﻳﻮﺟﺪ ﻓﻰ LabVIEWﻣﻜﺘﺒﺔ آﺎﻣﻠﺔ ﻣﻦ
اﻟﺪوال ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت وﺳﻮف ﻧﺘﻌﺮف ﻓﻰ هﺬا اﻟﺪرس ﻋﻠﻰ اﻟﺪوال اﻻﺳﺎﺳﻴﺔ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت.
وﻳﻤﻜﻦ ادراج هﺬة اﻟﺪوال اﻻﺳﺎﺳﻴﺔ ﻣﻦ
Factions Palette>>Programming>>File I/O
50
Close File
Write to Text File
Read From Text File
Write to Binary File
Read from Binary File
وﻗﺒﻞ ان ﻧﺒﺪأ اﻟﺘﻌﺮف ﻋﻠﻰ هﺬة اﻟﺪوال ﻧﻮﺿﺢ اﻟﻨﻮﻋﻴﻦ اﻻﺳﺎﺳﻴﻦ ﻣﻦ اﻟﻤﻠﻔﺎت :
اﻟﻨﻮع اﻻول Binary Files :وﻓﻴﻪ ﺗﺨﺰن اﻟﻤﻠﻔﺎت ﻋﻠﻰ هﻴﺌﺔ . Bytesوﻳﺘﻢ ﻗﺮاءة هﺬا اﻟﻨﻮع ﻣﻦ
اﻟﻤﻠﻔﺎت ﺑﻨﻔﺲ اﻟﻄﺮﻳﻘﺔ اﻟﺘﻰ ﺧﺰن ﺑﻬﺎ واﻻ ﺳﺘﻜﻮن اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﻢ ﻗﺮاءﺗﻬﺎ ﻏﻴﺮ ﺻﺤﻴﺤﺔ.
اﻟﻨﻮع اﻟﺜﺎﻧﻰ Text File :وﻓﻴﻪ ﺗﻜﻮن اﻟﺒﻴﺎﻧﺎت ﻋﻠﻰ هﻴﺌﺔ ﺣﺮوف وآﻞ ﺣﺮف ﻳﺨﺰن آﺮﻗﻢ وهﺬا اﻟﺮﻗﻢ
هﻮ ASCII Codeﻟﻠﺤﺮف.ﻟﺬﻟﻚ ﻋﻨﺪ اﻟﺘﺨﺰﻳﻦ ﻓﻰ هﺬة اﻟﻤﻠﻔﺎت ﻧﺤﻮل ﻣﺎ ﻧﺮﻳﺪﻩ اﻟﻰ Stringوهﺬا اﻟـ
Stringﻳﺘﻢ ﺗﺨﺰﻳﻨﻪ ﻓﻰ اﻟﻤﻠﻒ ﺑﺎﻟـ .ASCII Codeوﻣﺎ ﻳﻤﻴﺰ هﺬة اﻟﻤﻠﻔﺎت اﻧﻪ ﻳﻤﻜﻦ ان ﻳﺘﻢ ﻗﺮاءﺗﻬﺎ
ﺑﻮاﺳﻄﺔ ﺑﺮاﻣﺞ ﺗﺤﺮﻳﺮ اﻟﻨﺼﻮص ﻣﺜﻞ .Notepadوﻟﻜﻨﻬﺎ ﺗﺄﺧﺬ ﺳﻌﻪ ﺗﺨﺰﻳﻨﻴﺔ اآﺒﺮ ﻣﻦ .Binary Files
ﺗﻘﻮم هﺬة Express VIﺑﺘﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ ﻣﻠﻒ ،هﺬا اﻟﻤﻠﻒ ﻳﻤﻜﻦ ان ﻳﻜﻮن ﻣﻦ اﻟﻨﻮع :
• Measurement Data Fileﻣﻦ اﻟﻨﻮع Text
) (text-based measurement fileوهﻮ ﻳﻜﻮن ﺑﺎﻻﻣﺘﺪاد LVMو ﻳﻤﻜﻦ ﻓﺘﺤﻪ ﺑﺒﺮاﻣﺞ
ﺗﺤﺮﻳﺮ اﻟﻨﺼﻮص ﻣﺜﻞ Notepadاو ﺑﺮاﻣﺞ Spreadsheetﻣﺜﻞ . Excelواﻟﺒﻴﺎﻧﺎت ﻓﻰ
هﺬا اﻟﻤﻠﻒ ﻳﻤﻜﻦ ان ﺗﻜﻮن ﻣﻔﺼﻮﻟﺔ ﺑـ Tabاو ﻳﻤﻜﻦ ان ﻧﺠﻌﻠﻬﺎ ﻣﻔﺼﻮﻟﺔ ﺑـ ﻓﺎﺻﻠﺔ ﻋﺎدﻳﺔ ).(,
وﻗﺪ ﻳﺤﺘﻮى اﻟﻤﻠﻒ LVMاﻳﻀﺎ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺒﻴﺎﻧﺎت ﻣﺜﻞ وﻗﺖ وﺗﺎرﻳﺦ اﻟﺤﺼﻮل ﻋﻠﻰ
هﺬة اﻟﺒﻴﺎﻧﺎت.
51
• Measurement Data Fileﻣﻦ اﻟﻨﻮع Binaryوهﻮ ﻳﻜﻮن ﺑﺎﻻﻣﺘﺪاد TDMوﻳﻤﻜﻦ
ﺗﺨﺰﻳﻦ ﻓﻴﻪ اى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت .وهﻮ اﺳﺮع ﻣﻦ اﻟﻨﻮع LVMﻓﻰ اﻟﺘﻌﺎﻣﻞ وﻳﺎﺧﺬ ﻣﺴﺎﺣﺔ
ﺗﺨﺰﻳﻨﻴﺔ اﺻﻐﺮ وﻳﻤﻜﻦ ﺗﺨﺰﻳﻦ اﻻرﻗﺎم ﻓﻴﻪ ﺑﺎآﺜﺮ دﻗﺔ ﻋﻦ ﺗﺨﺰﻳﻨﻬﺎ ﻓﻰ ﻣﻠﻒ ﻣﻦ اﻟﻨﻮع .LVM
ﻋﺎدة ﻣﺎ ﺗﺴﺘﺨﺪم هﺬة Express VIﻟﺘﺨﺰﻳﻦ اﻻﺷﺎرات اﻟﺘﻰ ﻳﺘﻢ ﻗﻴﺎﺳﻬﺎ ﺑﻮاﺳﻄﺔ آﺮوت . DAQ
ﻋﻨﺪ ادراج هﺬة Express VIﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻋﺪادات Express VIﻟﺘﺤﺪﻳﺪ ﺧﺼﺎﺋﺺ اﻟﻤﻠﻒ اﻟﺬى
ﺳﻴﺘﻢ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻴﻪ .وﻳﻤﻜﻦ ﻓﺘﺢ هﺬة اﻟﻨﺎﻓﺬة ﻓﻰ اى وﻗﺖ ﺑﺎﻟﻀﻐﻂ ﻣﺮﺗﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻦ ﺑﺎﻟﺰر اﻻﻳﺴﺮ
ﻟﻠﻤﺎوس ﻋﻠﻰ اﻳﻘﻮن .VI
52
ﻧﺘﻌﺮف ﻋﻠﻰ اﻻﺧﺘﻴﺎرات ﻓﻰ هﺬة اﻟﻨﺎﻓﺬة :
53
ﻣﺪاﺧﻞ هﺬة Express VIهﻰ :
54
ﻣﺨﺎرج Express VI
وﺗﺪﺧﻞ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺮاد ﺗﺨﺰﻳﻨﻬﺎ اﻟﻰ هﺬة Express VIﺑﺤﻴﺚ ﺗﻜﻮن ﻣﻦ اﻟﻨﻮع Dynamic Data
اﻟﺬى ﻳﻤﻜﻦ ﺗﺠﻤﻴﻊ ﻓﻴﻪ اآﺜﺮ ﻣﻦ اﺷﺎرة .وﻳﻤﻜﻦ ﺗﺤﻮﻳﻞ اى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﻰ Dynamic Data
ﺑﻮاﺳﻄﺔ Convert To Dynamic Dataاﻟﺘﻰ ﻳﻤﻜﻦ ادراﺟﻬﺎ ﻣﻦ
Functions Palette>>Express>>Signal Manipulation
55
ﻣﺜﺎل :ﺗﺨﺰﻳﻦ ﻣﺼﻔﻮﻓﺔ
56
وﻋﻨﺪ ادراج هﺬة Express VIﺗﻈﻬﺮ ﻟﻨﺎ ﻧﺎﻓﺬة اﻋﺪادات Express VIﻟﺘﺤﺪﻳﺪ ﺧﺼﺎﺋﺺ اﻟﻤﻠﻒ و
اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺳﻴﺘﻢ اﺳﺘﺮﺟﺎﻋﻬﺎ.
وﻳﻤﻜﻦ ﻓﺘﺢ هﺬة اﻟﻨﺎﻓﺬة ﻓﻰ اى وﻗﺖ ﺑﺎﻟﻀﻐﻂ ﻣﺮﺗﻴﻦ ﻣﺘﺘﺎﻟﻴﺘﻴﻦ ﺑﺎﻟﺰر اﻻﻳﺴﺮ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻳﻘﻮﻧﺔ .VI
57
ﻣﻠﺤﻮﻇﺔ :ﻗﺪ ﺗﻜﻮن اﻟﺒﻴﺎﻧﺎت ﻓﻰ اﻟﻤﻠﻒ ﻋﻠﻰ هﻴﺌﺔ ﻣﺠﻤﻮﻋﺎت ﻣﻦ اﻟﺒﻴﺎﻧﺎت آﻞ ﻣﺠﻤﻮﻋﺔ ﻟﻬﺎ Header
وﻓﻰ آﻞ ﻣﺮة ﻳﺘﻢ اﻟﻘﺮاءة ﻣﻦ اﻟﻤﻠﻒ ﻳﺘﻢ ﻗﺮاءة ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺗﻠﻚ اﻟﺒﻴﺎﻧﺎت ﺣﺘﻰ ﻳﺘﻢ اﻻﻧﺘﻬﺎء ﻣﻦ ﻗﺮاءة اﻟﻤﻠﻒ
آﻠﻪ .وﻗﺪ ﺗﻮﺟﺪ اﻟﺒﻴﺎﻧﺎت ﻓﻰ ﻣﺠﻤﻮﻋﺔ واﺣﺪة.
58
ﻣﺜﺎل :ﻣﻠﻒ Textﻳﺤﺘﻮى ﻋﻠﻰ ﺑﻴﺎﻧﺎت ﺑﻬﺬا اﻟﺸﻜﻞ
61
وﻣﺪاﺧﻞ هﺬة VIآﺎﻟﺘﺎﻟﻰ:
:Formatوهﻮ ﻟﺘﺤﺪﻳﺪ ﺷﻜﻞ اﻻرﻗﺎم ﻋﻨﺪ ﺗﺤﻮﻳﻠﻬﺎ اﻟﻰ Stringوﺗﺨﺰﻳﻨﻬﺎ ﻓﻰ اﻟﻤﻠﻒ وﺻﻴﻐﺔ Format
هﻰ آﻤﺎ ذآﺮﻧﺎهﺎ ﻓﻰ هﺬا اﻟﺪرس .واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ ﻓﺎن ﻗﻴﻤﺔ Formatهﻰ %.3fاى رﻗﻢ ذو
آﺴﺮ ﻋﺸﺮى وﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ ﺗﺴﺎوى .3
: File Pathاﺳﻢ وﻣﺴﺎر اﻟﻤﻠﻒ وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ ﻣﺴﺎر اﻟﻤﻠﻒ ﻣﻦ ﺧﻼل File Path Controlاو ﻳﻜﻮن
ﺧﺮج ﻷى VIاﺧﺮى .واذا ﻟﻢ ﻳﺘﻢ ﺗﻮﺻﻴﻞ هﺬا اﻟﻤﺪﺧﻞ او ان ﻗﻴﻤﺔ ﻣﺴﺎر اﻟﻤﻠﻒ ﻓﺎرﻏﺔ ﺳﺘﻈﻬﺮ VIﻋﻨﺪ
ﺗﻨﻔﻴﺬهﺎ ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ اﻟﻰ اﻟﻤﺴﺘﺨﺪم ﺗﻄﻠﺐ ﻣﻨﻪ ﺗﺤﺪﻳﺪ ﻣﺴﺎر واﺳﻢ اﻟﻤﻠﻒ اﻟﻤﺮاد اﻟﺘﺨﺰﻳﻦ ﻓﻴﻪ.
: 2 D Dataﻣﺪﺧﻞ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ ﺗﺨﺰﻳﻨﻬﺎ اذا آﺎﻧﺖ ﻓﻰ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ.
: 1 D Dataﻣﺪﺧﻞ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ ﺗﺨﺰﻳﻨﻬﺎ اذا آﺎﻧﺖ ﻓﻰ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪ واﺣﺪ.
ﻣﻠﺤﻮﻇﺔ :اذا ﺗﻢ اﻟﺘﻮﺻﻴﻞ اﻟﻰ اﻟﻤﺪﺧﻠﻴﻦ 2D Dataو 1D Dataﻓﺴﻴﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻤﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪ
اﻟﻮاﺣﺪ وﻳﺘﻢ ﺗﺠﺎهﻞ اﻟﻤﺼﻔﻮﻓﺔ ذات اﻟﺒﻌﺪﻳﻦ.
?: Append to Fileﻟﻮ ان هﺬا اﻟﻤﺪﺧﻞ Trueﺗﻘﻮم هﺬة VIﺑﺎﺿﺎﻓﺔ اﻟﺒﻴﺎﻧﺎت اﻟﻰ اﻟﺒﻴﺎﻧﺎت اﻟﻤﺨﺰن
ﺑﺎﻟﻤﻠﻒ ﺳﺎﺑﻘﺎ.واذا آﺎﻧﺖ Falseﺗﻘﻮم VIﺑﺎﺳﺘﺒﺪال اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﻠﻒ ﺑﺎﻟﺒﻴﺎﻧﺎت اﻟﺠﺪﻳﺪة اﻟﺘﻰ
ﺳﻴﺘﻢ ﺗﺨﺰﻳﻨﻬﺎ .وﻗﻴﻤﺔ هﺬا اﻟﻤﺪﺧﻞ اذا ﻟﻢ ﻳﺘﻢ اﻟﺘﻮﺻﻴﻞ اﻟﻴﻪ هﻰ . False
ﻣﻠﺤﻮﻇﺔ :اذا ﻟﻢ ﻳﻜﻦ اﻟﻤﻠﻒ ﻣﻮﺟﻮد ﺳﻴﺘﻢ اﻧﺸﺎء اﻟﻤﻠﻒ وﺳﺘﺨﺰن اﻟﺒﻴﺎﻧﺎت ﺑﻪ.
?: Transposeاذا آﺎن هﺬا اﻟﻤﺪﺧﻞ Trueﻳﺘﻢ ﺗﺤﻮﻳﻞ اﻋﻤﺪة اﻟﻤﺼﻔﻮﻓﺔ اﻟﻰ ﺻﻔﻮف واﻟﺼﻔﻮف اﻟﻰ
اﻋﻤﺪة ﺑﺤﻴﺚ ﺗﺨﺰن اﻻﻋﻤﺪة ﻋﻠﻰ هﻴﺌﺔ ﺻﻔﻮف ﻓﻰ اﻟﻤﻠﻒ و اﻟﺼﻔﻮف ﺗﺨﺰن ﻋﻠﻰ هﻴﺌﺔ اﻋﻤﺪة.
اﻣﺎ اذا آﺎن Falseﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﻤﺼﻔﻮﻓﺔ آﻤﺎ هﻰ ﺑﺪون ﺗﺤﻮﻳﻞ وهﺬا هﻮ اﻟﻮﺿﻊ اﻟﻌﺎدى ﻓﻰ ﺣﺎﻟﺔ ﻋﺪم
ﺗﻮﺻﻴﻞ هﺬا اﻟﻤﺪﺧﻞ.
:Delimiterﻧﻮع اﻟﻔﺎﺻﻞ ﺑﻴﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ اﻟﺼﻒ ﻓﻰ اﻟﻤﻠﻒ واﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ هﻰ Tabوﻳﻤﻜﻦ ﺗﻮﺻﻴﻞ
اى ﻓﺎﺻﻞ ﻣﺜﻞ اﻟﻔﺎﺻﻠﺔ اﻟﻌﺎدﻳﺔ ) (,او اﻟﻔﺎﺻﻠﺔ اﻟﻤﻨﻘﻮﻃﺔ );(.
62
ﻣﺜﺎل :ﺗﺨﺰﻳﻦ ﻣﺼﻔﻮﻓﺔ ذات ﺑﻌﺪﻳﻦ
63
ﻣﻦ و ﺗﻢ ادراج داﻟﺔ: ﻣﻠﺤﻮﻇﺔ
Functions Palette>>Mathematics>>Elementary & Spatial Functions>>
Trigonometric Function
64
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ﻋﺪم ﺗﻮﺻﻴﻞ ﻣﺴﺎر اﻟﻤﻠﻒ اﻟﻰ ﻣﺪﺧﻞ اﻟﺪاﻟﺔ و اﻇﻬﺮت اﻟﺪاﻟﺔ ﻋﻨﺪ اﻟﺘﻨﻔﻴﺬ ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ
وﺿﻐﻂ اﻟﻤﺴﺘﺨﺪم Cancelاى ﻟﻢ ﻳﺤﺪد ﻣﺴﺎر اﻟﻤﻠﻒ ﺳﻴﺤﺪث اﻟﺨﻄﺄ رﻗﻢ 43وﺗﻈﻬﺮ رﺳﺎﻟﺔ ﺗﻔﻴﺪ ﺑﺬﻟﻚ.
65
وﻳﻤﻜﻦ ان ﺗﻘﻮم هﺬة VIﺑﻌﻤﻞ Transposeﻟﻠﻤﺼﻔﻮﻓﺔ ﻗﺒﻞ اﺧﺮاﺟﻬﺎ.
وﻣﺪاﺧﻞ هﺬة VIهﻰ :
: Formatﺻﻴﻐﺔ ﺗﺤﺪد ﺷﻜﻞ اﻻرﻗﺎم ﻋﻨﺪ ﺗﺤﻮﻳﻠﻬﺎ ﻣﻦ Stringاﻟﻰ رﻗﻢ وﻗﻴﻤﺔ Formatاﻟﻌﺎدﻳﺔ
" "%.3fاى رﻗﻢ ذو آﺴﺮ ﻋﺸﺮى وﻋﺪد اﻻرﻗﺎم اﻟﻌﺸﺮﻳﺔ =.3
:File Pathﻣﺴﺎر اﻟﻤﻠﻒ اﻟﺬى ﺳﻴﺘﻢ اﻟﻘﺮاءة ﻣﻨﻪ .اذا ﻟﻢ ﻳﻮﺻﻞ هﺬا اﻟﻤﺪﺧﻞ او آﺎن اﻟﻤﺴﺎر ﻓﺎرﻏﺎ ﺳﻴﺘﻢ
اﺧﺮاج ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ ﻟﻠﻤﺴﺘﺨﺪم ﻟﺘﺤﺪﻳﺪ ﻣﺴﺎر اﻟﻤﻠﻒ.
: Number of Rowsﻟﺘﺤﺪﻳﺪ اﻗﺼﻰ ﻋﺪد ﻣﻦ اﻟﺴﻄﻮر ﺳﻴﺘﻢ ﻗﺮاءﺗﻬﺎ.وﻋﺪد اﻟﺴﻄﻮر اﻟﺘﻰ ﻳﺘﻢ ﻗﺮاءﺗﻬﺎ
ﻳﻤﻜﻦ ان ﻳﻜﻮن اﻗﻞ اذا ﺗﻢ اﻟﻮﺻﻮل اﻟﻰ ﻧﻬﺎﻳﺔ اﻟﻤﻠﻒ .اذا آﺎن ﻗﻴﻤﺔ هﺬا اﻟﻤﺪﺧﻞ اﻗﻞ ﻣﻦ اﻟﺼﻔﺮ ) (1-ﻳﺘﻢ
ﻗﺮاءة آﻞ اﻟﺴﻄﻮر او آﻞ اﻟﺼﻔﻮف وهﺬة هﻰ ﻗﻴﻤﺔ اﻟﻤﺪﺧﻞ اذا ﻟﻢ ﻳﺘﻢ اﻟﺘﻮﺻﻴﻞ اﻟﻴﻪ.
: Start of Read Offsetوهﻮ اﻟﻤﻜﺎن ﻓﻰ اﻟﻤﻠﻒ اﻟﺬى ﺳﺘﺒﺪأ ﻣﻨﻪ ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة وهﻮ ﻳﻌﺒﺮ ﻋﻦ رﻗﻢ
اﻟﺤﺮف ﻓﻰ اﻟﻤﻠﻒ اﻟﺬى ﺳﺘﺒﺪأ ﻣﻨﻪ ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة .
ﻣﺜﺎل اذا آﺎن اﻟﻤﻠﻒ ﻳﺘﻜﻮن ﻣﻦ Headerﻓﻴﻪ ﻣﻌﻠﻮﻣﺎت ﻋﻦ اﻟﺒﻴﺎﻧﺎت) ﻣﺜﻞ وﻗﺖ وﺗﺎرﻳﺦ اﻟﻘﻴﺎس و اﺳﻤﺎء
اﻟﺒﻴﺎﻧﺎت( ﺛﻢ اﻟﺒﻴﺎﻧﺎت اﻟﺮﻗﻤﻴﺔ اﻟﺘﻰ ﻧﺮﻳﺪ ﻗﺮاءﺗﻬﺎ وآﺎن ﻋﺪد ﺣﺮوف هﺬا Headerهﻰ 57ﻓﺴﻮف ﻧﺒﺪأ
ﻣﻦ اﻟﺤﺮف رﻗﻢ ) 57اﻟﺘﺮﻗﻴﻢ ﻳﺒﺪأ ﻣﻦ اﻟﺼﻔﺮ(.
واﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ ﻟﻬﺬا اﻟﻤﺪﺧﻞ هﻰ 0اى ﻣﻦ ﺑﺪاﻳﺔ اﻟﻤﻠﻒ.
:Max Character/Rowاﻗﺼﻰ ﻋﺪد ﻣﻦ اﻟﺤﺮوف ﻓﻰ اﻟﺼﻒ ﺳﻴﺘﻢ ﻗﺮاءﺗﻬﺎ .واذا ﻟﻢ ﻳﻮﺻﻞ هﺬا
اﻟﻤﺪﺧﻞ ﻓﺎن اﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ ﻟﻪ هﻰ 0وهﻰ ﺗﻌﻨﻰ آﻞ ﺣﺮوف اﻟﺼﻒ.
اذا آﺎن اﻟﻤﺪﺧﻞ Falseوهﻰ اﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ ﺗﺨﺮج اﻟﻤﺼﻔﻮﻓﺔ آﻤﺎ هﻰ ﺑﺪون ﺗﺤﻮﻳﻞ.
:Delimiterﻧﻮع اﻟﻔﺎﺻﻞ اﻟﻤﺴﺘﺨﺪم ﻓﻰ اﻟﻤﻠﻒ .واﻟﻘﻴﻤﺔ اﻟﻌﺎدﻳﺔ هﻰ .Tab
66
وﻣﺨﺎرج VIآﺎﻟﺘﺎﻟﻰ :
: New File Pathﻣﺴﺎر اﻟﻤﻠﻒ اﻟﺬى ﺗﻤﺖ ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة ﻣﻨﻪ.
: All Rowsﻣﺼﻔﻮﻓﺔ ارﻗﺎم ذات ﺑﻌﺪﻳﻦ ﺗﺤﺘﻮى ﻋﻠﻰ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﻢ ﻗﺮاءﺗﻬﺎ.
: First Rowﻣﺼﻔﻮﻓﺔ ارﻗﺎم ذات ﺑﻌﺪ واﺣﺪ ﺗﺤﺘﻮى ﻓﻘﻂ ﻋﻠﻰ اول ﺻﻒ ﻣﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺗﻢ ﻗﺮاءﺗﻬﺎ.
:Mark After Readوهﻮ اﻟﻤﻜﺎن ﻓﻰ اﻟﻤﻠﻒ اﻟﺬى ﺗﻮﻗﻔﺖ ﻋﻨﺪﻩ ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة .وهﻮ رﻗﻢ اﻟﺤﺮف اﻟﺬى
ﻳﻠﻰ ﻣﺎ ﺗﻢ ﻗﺮاءﺗﻪ ﻣﺒﺎﺷﺮة.
? : (End of File) EOFاذا آﺎن ﻗﻴﻤﺘﻪ Trueﻓﻬﺬا ﻳﻌﻨﻰ اﻧﻪ ﺗﻢ اﻟﻮﺻﻮل اﻟﻰ ﻧﻬﺎﻳﺔ اﻟﻤﻠﻒ ﻓﻰ ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة.
67
ﻣﺜﺎل :
ﻣﻠﺤﻮﻇﺎت :
Write to Spreadsheet File VIو Read To Spreadsheet File VIﻟﻴﺲ ﻟﻬﻤﺎ ﻣﺪﺧﻞ
او ﻣﺨﺮج ﻟـ Error Clusterﻓﻬﻤﺎ ﻳﻘﻮﻣﺎن ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺧﻄﺎء داﺧﻠﻴﺎ ﻟﺬا ﻳﻔﻀﻞ اﺳﺘﺨﺪاﻣﻬﻤﺎ ﻓﻰ
اﻟﺘﻄﺒﻴﻘﺎت اﻟﺒﺴﻴﻄﺔ وﻟﻴﺲ اﻟﺘﻄﺒﻴﻘﺎت اﻟﻤﺘﻘﺪﻣﺔ.
ﻣﻦ اﻟﻤﻔﻴﺪ ﻓﺘﺢ هﺬﻳﻦ VIوﻣﺸﺎهﺪة Block Diagramاﻟﺨﺎص ﺑﻬﻤﺎ وذﻟﻚ ﻳﺆدى ﻣﺰﻳﺪا ﻣﻦ اﻟﻔﻬﻢ ﻟﻄﺮﻳﻘﺔ
ﻋﻤﻠﻬﻤﺎ .
68
اﻟﻔﺮق ﺑﻴﻦ ﻣﻠﻔﺎت Excel Spreadsheetوﻣﻠﻔﺎت Text Spreadsheet
ﻣﻠﻔﺎت Excel Spreadsheetذات اﻻﻣﺘﺪاد XLSهﻰ ﻣﻠﻔﺎت ﻣﻦ اﻟﻨﻮع Binaryﻟﻬﺎ ﻓﻮرﻣﺎت
ﺧﺎﺻﺔ ﻳﺘﻢ ﻓﺘﺤﻬﺎ ﺑﻮاﺳﻄﺔ ﺑﺮﻧﺎﻣﺞ Excelاو اﻟﺒﺮاﻣﺞ اﻟﻤﻌﺪة ﻟﺬﻟﻚ وﻻ ﻳﻤﻜﻦ ﻓﺘﺤﻬﺎ ﺑﺒﺮاﻣﺞ ﺗﺤﺮﻳﺮ
اﻟﻨﺼﻮص ﻣﺜﻞ Notepadوذﻟﻚ ﻻﻧﻬﺎ آﻤﺎ ذآﺮﻧﺎ ﻣﻦ اﻟﻨﻮع .Binary
اﻣﺎ اﻟﻤﻠﻔﺎت Text Spreadsheetهﻰ ﻣﻠﻔﺎت ﻣﻦ اﻟﻨﻮع Textاى ﻳﻤﻜﻦ ﻓﺘﺤﻬﺎ ﺑﺒﺮاﻣﺞ ﺗﺤﺮﻳﺮ
اﻟﻨﺼﻮص ﻣﺜﻞ . Notepad
وﻋﺎدة ﺗﺨﺰن اﻟﺒﻴﺎﻧﺎت ﻓﻰ هﺬة اﻟﻤﻠﻔﺎت ﻋﻠﻰ هﻴﺌﺔ ﺻﻔﻮف او ﺳﻄﻮر وﻳﻔﺼﻞ ﺑﻴﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ ﻧﻔﺲ اﻟﺴﻄﺮ
Tabاو اﻟﻔﺎﺻﻠﺔ اﻟﻌﺎدﻳﺔ ) (,او اى ﻓﺎﺻﻠﺔ اﺧﺮى.وﻳﻔﺼﻞ ﺑﻴﻦ آﻞ ﺳﻄﺮ واﻟﺬى ﻳﻠﻴﺔ ﺑـ Carriage
Returnو.(\r\n) LineFeed
وهﺬة اﻟﻤﻠﻔﺎت ﻳﻤﻜﻦ ان ﻧﻀﻊ ﻟﻬﺎ اى اﻣﺘﺪاد ﻣﺜﻞ txtاو .csv
وﻟﻔﺘﺢ هﺬة اﻟﻤﻠﻔﺎت ﺑﻮﺳﻄﺔ ﺑﺮﻧﺎﻣﺞ Excelﻧﺘﺒﻊ اﻟﺨﻄﻮات اﻻﺗﻴﺔ :
69
70
ﺛﺎﻧﻴﺎ Low Level File I/O
ﻟﻜﻰ ﻧﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت هﻨﺎك ﺛﻼث ﺧﻄﻮات ﻣﺘﺘﺎﺑﻌﺔ ﻧﻘﻮم ﺑﻌﻤﻠﻬﻢ هﻢ :
-1ﻓﺘﺢ او اﻧﺸﺎء اﻟﻤﻠﻒ اﻟﻤﺮاد اﻟﺘﻌﺎﻣﻞ ﻣﻌﻪ وﻋﻨﺪ ﻓﺘﺤﻪ ﻧﺤﺼﻞ ﻋﻠﻰ Reference ) Rufnum
(Numberﻣﻦ ﺧﻼﻟﻪ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﻟﻤﻠﻒ ﻓﻰ ﺑﺎﻗﻰ اﻟﺨﻄﻮات.
-2اﻟﻘﺮاءة او اﻟﻜﺘﺎﺑﻪ ﻣﻦ و اﻟﻰ اﻟﻤﻠﻒ.
-3ﻏﻠﻖ اﻟﻤﻠﻒ.
-4ﻓﺤﺺ ﺣﺪوث اى ﺧﻄﺄ وهﺬة ﻟﻴﺴﺖ ﺧﻄﻮة اﺳﺎﺳﻴﻪ ﻓﻰ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت .
وﻋﻤﻠﻴﺘﺎ ﻓﺘﺢ و ﻏﻠﻖ اﻟﻤﻠﻒ ﺗﺒﻄﺄن ﻣﻦ ﺳﺮﻋﺔ اﻟﻜﺘﺎﺑﺔ او اﻟﻘﺮاءة ﻣﻦ اﻟﻤﻠﻒ وﻟﺬﻟﻚ ﻳﻔﻀﻞ ﻓﺘﺢ اﻟﻤﻠﻒ وﻋﻨﺪ
اﻧﺘﻬﺎء آﻞ ﻋﻤﻠﻴﺎت اﻟﻜﺘﺎﺑﺔ واﻟﻘﺮاءة ﻧﻐﻠﻘﻪ.
و Read and Write to Measurement File Express VIsو Read and Write to
Spreadsheet Fileﺗﻘﻮم ﺑﻬﺬة اﻟﺨﻄﻮات ﻣﻦ ﻓﺘﺢ وآﺘﺎب اوﻗﺮاءة وﻏﻠﻖ .ﻟﺬﻟﻚ ﻻﻳﻔﻀﻞ اﺳﺘﺨﺪام هﺬة
VIداﺧﻞ .Loops
وﺳﻨﺘﻌﺮف ﻋﻠﻰ اﻟﺪوال اﻻﺳﺎﺳﻴﺔ ﻟﻌﻤﻞ هﺬة اﻟﺨﻄﻮات.
وآﻤﺎ ذآﺮﻧﺎ ان هﻨﺎك ﻧﻮﻋﺎن اﺳﺎﺳﻴﺎن ﻣﻦ اﻟﻤﻠﻔﺎت وهﻤﺎ Text Fileو Binary Fileوﺳﻨﺘﻌﺮف اوﻻ
ﻋﻠﻰ آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ Text Fileﺛﻢ آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ .Binary File
71
وﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﺎﻟﺨﻄﻮة اﻻوﻟﻰ ﻟﻔﺘﺢ اﻟﻤﻠﻒ او اﻧﺸﺎءﻩ وﻳﺠﺐ ان ﻧﺨﺘﺎر ﻧﻮع اﻟﻌﻤﻠﻴﺔ Operationاﻟﺼﺤﻴﺢ
واﻻ ﻗﺪ ﻳﺤﺪث ﺧﻄﺄ ﻣﺜﻞ :اﺧﺘﻴﺎر اﻟﻌﻤﻠﻴﺔ اﻧﺸﺎء ) (Createوﻳﻜﻮن اﻟﻤﻠﻒ ﻣﻮﺟﻮدا ﻓﺴﻴﻨﺘﺞ ﺧﻄﺄ وﻳﻤﻜﻦ اﻻﻃﻼع
ﻋﻠﻰ Helpﻟﻤﻌﺮﻓﺔ اﻻﺧﻄﺎء اﻟﺘﻰ ﻳﻤﻜﻦ ان ﺗﺤﺪث.
وﻟﺘﺤﺪﻳﺪ ﻧﻮع اﻟﻌﻤﻠﻴﺔ ﻳﻔﻀﻞ ان ﻧﻀﻐﻂ ﺑﺎﻟﺰر اﻻﻳﻤﻦ ﻟﻠﻤﺎوس ﻋﻠﻰ اﻟﻤﺪﺧﻞ Operationوﻧﺨﺘﺎر Create
Constant
72
وﻳﻤﻜﻦ ان ﻧﺴﺘﺨﺪم Error Clusterاﻟﺨﺎرج ﻣﻦ هﺬة اﻟﺪاﻟﺔ ﻟﻤﻌﺮﻓﺔ هﻞ ﺣﺪث ﺧﻄﺄ ام ﻻ ﺑﻮاﺳﻄﺔ VIs
اﻟﺨﺎﺻﺔ ﺑﺎﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻻﺧﻄﺎء ﻣﺜﻞ .Simple Error Handler.vi
ﻣﻠﺤﻮﻇﺎت :
¾ ﻋﻨﺪ ﻓﺘﺢ اى ﻣﻠﻒ ﻳﺠﺐ ان ﻧﻘﻮم ﺑﻐﻠﻘﻪ ﻗﺒﻞ ﻧﻬﺎﻳﺔ اﻟﺒﺮﻧﺎﻣﺞ.
¾ اﻟﺪاﻟﺘﻴﻦ Open/Create/Replace Fileو Close Fileﻟﻴﺴﺖ ﺧﺎﺻﺘﻴﻦ ﻟـ Text Files
ﻓﻘﻂ واﻧﻤﺎ ﻳﺴﺘﺨﺪﻣﺎن ﻣﻊ ﺟﻤﻴﻊ اﻧﻮاع اﻟﻤﻠﻔﺎت.
اﻟﺪاﻟﺔ Write to Text File
ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﻜﺘﺎﺑﺔ ﻧﺺ ) (Stringاﻟﻰ ﻣﻠﻒ او آﺘﺎﺑﺔ ﻣﺼﻔﻮﻓﺔ ﻣﻦ اﻟﻨﺼﻮص ) Array of
(Stringsاﻟﻰ ﻣﻠﻒ ﺑﺤﻴﺚ ﺳﻴﻜﻮن آﻞ ﻧﺺ ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ ﻋﺒﺎرة ﻋﻦ ﺳﻄﺮ ﻓﻰ اﻟﻤﻠﻒ.
73
وﻳﻤﻜﻦ ﺗﺤﺪﻳﺪ اﻟﻤﻠﻒ ﻟﻬﺬة اﻟﺪاﻟﺔ ﺑﻮاﺳﻄﺔ ﺗﻮﺻﻴﻞ File Pathاو Refnumﻟﻠﻤﻠﻒ اﻟﻰ اﻟﻤﺪﺧﻞ .File
وﻓﻰ ﺣﺎﻟﺔ ﺗﻮﺻﻴﻞ File Pathﺗﻘﻮم اﻟﺪاﻟﺔ ﺑﺎﻧﺸﺎء اﻟﻤﻠﻒ اذا ﻟﻢ ﻳﻜﻦ ﻣﻮﺟﻮدا واذا آﺎن ﻣﻮﺟﻮدا ﺗﻘﻮم
ﺑﺤﺬف ﻣﺤﺘﻮﻳﺎﺗﻪ وﺗﻜﺘﺐ اﻟﻨﺺ اﻟﺠﺪﻳﺪ ﻓﻰ اﻟﻤﻠﻒ ﺛﻢ ﺗﻘﻮم ﺑﻐﻠﻖ اﻟﻤﻠﻒ وﺑﺎﻟﺘﺎﻟﻰ ﻟﻴﺲ هﻨﺎك ﺣﺎﺟﺔ ﻟﻐﻠﻖ
اﻟﻤﻠﻒ ﺑﻮاﺳﻄﺔ اﻟﺪاﻟﺔ .Close File
وﻋﻨﺪ ﺗﻮﺻﻴﻞ Refnumﻓﺎن اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﻜﺘﺎﺑﺔ اﻟﻨﺺ ﻓﻰ اﻟﻤﻠﻒ ﺑﺎﻟﺘﺘﺎﺑﻊ ﺑﻤﻌﻨﻰ ﻋﻨﺪ آﺘﺎﺑﺔ ﻧﺺ ﻓﻰ
اﻟﻤﻠﻒ ﺛﻢ آﺘﺎﺑﺔ ﻧﺺ اﺧﺮ ﻓﺎﻧﻪ ﺳﻮف ﻳﻠﻰ اﻟﻨﺺ اﻟﺬى آﺘﺒﻨﺎﻩ ﻣﻦ ﻗﺒﻠﻪ ﻓﻰ اﻟﻤﻠﻒ وهﻜﺬا ﻋﻨﺪ آﺘﺎﺑﻪ ﻧﺼﻮص
اﺧﺮى .وﺣﻘﻴﻘﺎ ﻓﻰ هﺬة اﻟﺤﺎﻟﺔ ﺗﺘﻢ اﻟﻜﺘﺎﺑﻪ ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى ﻳﺤﺪدﻩ File Markerاو File Position
وهﻮ اﻟﺬى ﺳﻨﻮﺿﺤﻪ ﺑﻌﺪ اﻻﻣﺜﻠﺔ.
74
ﻋﻨﺪ ﺗﻮﺻﻴﻞ ﻣﺼﻔﻮﻓﺔ ﻣﻦ Stringsاﻟﻰ اﻟﺪاﻟﺔ Write to Text Fileﻳﺘﻢ آﺘﺎﺑﺔ آﻞ Stringﻓﻰ ﺳﻄﺮ
ﻣﺴﺘﻘﻞ.
ﻣﺜﺎل
اﻟﺬى ﻳﺘﻜﻮن ﻣﻦ ﻻﻧﻬﺎء اﻟﻜﺘﺎﺑﺔ ﻓﻰ ﺳﻄﺮ ﻓﻰ اﻟﻤﻠﻒ و آﺘﺎﺑﺔ ﺳﻄﺮ ﺟﺪﻳﺪ ﻧﺴﺘﺨﺪم اﻟﺜﺎﺑﺖ End of line
Carriage Returnو.\r\n Line Feed
ﻻﺣﻆ اﻧﻪ آﻤﺎ ﻓﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻳﻤﻜﻦ اﻧﺸﺎء Headerﻟﻠﻤﻠﻒ ﻗﺒﻞ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺮﻗﻤﻴﺔ.
75
File Markerاو File Position
File Markerاو File Positionهﻮ رﻗﻢ ﻳﺤﺪد اﻟﻤﻜﺎن اﻟﺬى ﻧﻘﻒ ﻓﻴﻪ ﻓﻰ اﻟﻤﻠﻒ وهﻮ ﻳﻤﺜﻞ ﻋﺪد
اﻟﺤﺮوف ﻣﻦ ﺑﺪاﻳﺔ اﻟﻤﻠﻒ ﺣﺘﻰ اﻟﻤﻜﺎن اﻟﺬى ﻧﻘﻒ ﻓﻴﻪ.وهﻮ ﻳﺤﺪد ﻣﻜﺎن اﻟﻜﺘﺎﺑﺔ ﻓﻰ او اﻟﻘﺮاءة ﻣﻦ اﻟﻤﻠﻒ.
وﻋﻨﺪ ﺑﺪاﻳﺔ ﻓﺘﺢ اﻟﻤﻠﻒ ﺗﻜﻮن ﻗﻴﻤﺘﻪ ﺻﻔﺮ وﻋﻨﺪ اﻟﻜﺘﺎﺑﺔ ﻓﻰ اﻟﻤﻠﻒ او اﻟﻘﺮاءة ﻣﻨﻪ ﻳﺘﻐﻴﺮ ﻗﻴﻤﺔ File
Positionﺑﻤﻘﺪار ﻋﺪد اﻟﺤﺮوف اﻟﺘﻰ ﺗﻢ آﺘﺎﺑﺘﻬﺎ او ﻗﺮاءﺗﻬﺎ.
ﻣﺜﺎل :اذا ﻓﺘﺤﻨﺎ ﻣﻠﻒ ﻓﺎن File Positionﺳﻴﻜﻮن ﻳﺴﺎوى ﺻﻔﺮ ﻓﻌﻨﺪ اﻟﻜﺘﺎﺑﺔ ﺳﺘﺘﻢ اﻟﻜﺘﺎﺑﺔ ﻣﻦ ﺑﺪاﻳﺔ
اﻟﻤﻠﻒ ﻓﺎذا آﺘﺒﻨﺎ ﻓﻰ اﻟﻤﻠﻒ ﻣﺜﻼ ﻋﺪد 100ﺣﺮف ﻓﺎن ﻗﻴﻤﺔ File Positionﺑﻌﺪ اﻟﻜﺘﺎﺑﺔ ﺳﺘﺴﺎوى 100
وﺳﻴﻜﻮن هﺬا ﻣﻜﺎن اﻟﻜﺘﺎﺑﺔ اﻟﺘﺎﻟﻴﺔ .ﻓﺎذا آﺘﺒﻨﺎ ﻋﺪد 50ﺣﺮف ﻓﺎن اﻟﻜﺘﺎﺑﺔ ﺳﺘﺒﺪأ ﻣﻦ اﻟﻤﻜﺎن 100وﺑﻌﺪ ﺗﻤﺎم
اﻟﻜﺘﺎﺑﺔ ﺳﻴﻜﻮن File Positionﻳﺴﺎوى 150وهﻜﺬا .
وﻳﺤﺪث ﻧﻔﺲ اﻟﺸﻰء ﻓﻰ ﺣﺎﻟﺔ اﻟﻘﺮاءة.
واذا آﺎن File Positionﻳﺴﺎوى ﺻﻔﺮ ﻓﺎن اﻟﻜﺘﺎﺑﺔ او اﻟﻘﺮاءة ﺳﺘﻜﻮن ﻓﻰ ﺑﺪاﻳﺔ اﻟﻤﻠﻒ.
واذا آﺎن ﻳﺴﺎوى ﻋﺪد ﺣﺮوف اﻟﻤﻠﻒ ﻓﺎن اﻟﻘﺮاءة واﻟﻜﺘﺎﺑﺔ ﺳﺘﻜﻮن ﻓﻰ ﻧﻬﺎﻳﺔ اﻟﻤﻠﻒ.
وﺗﻮﺟﺪ دوال ﻟﻤﻌﺮﻓﺔ File Positionواﻳﻀﺎ ﺗﻐﻴﻴﺮ ﻗﻴﻤﺔ File Positionوﺑﺎﻟﺘﺎﻟﻰ اﻟﻤﻜﺎن اﻟﺬى ﺳﺘﺘﻢ
ﻣﻨﻪ اﻟﻘﺮاءة وﺗﺘﻢ ﻓﻴﻪ اﻟﻜﺘﺎﺑﺔ .واﻳﻀﺎ دوال ﻟﻤﻌﺮﻓﺔ ﺣﺠﻢ اﻟﻤﻠﻒ
وهﺬة اﻟﺪوال هﻰ
76
ﻣﺜﺎل :ﺗﺤﺪﻳﺪ اﻟﻜﺘﺎﺑﺔ ﻓﻰ ﻧﻬﺎﻳﺔ ﻣﻠﻒ ﻣﻮﺟﻮد
77
وﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﻘﺮاءة ﻋﺪد ﻣﻌﻴﻦ ﻣﻦ اﻟﺤﺮوف ﻣﻦ اﻟﻤﻠﻒ .وهﺬا اﻟﻌﺪد ﻳﺘﻢ ﺗﺤﺪﻳﺪﻩ ﻣﻦ ﺧﻼل اﻟﻤﺪﺧﻞ Count
واذا آﺎﻧﺖ ﻗﻴﻤﺘﻪ اﺻﻐﺮ ﻣﻦ اﻟﺼﻔﺮ ) (1-ﻓﺎن اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﻘﺮاءة اﻟﻤﻠﻒ آﻠﻪ وهﺬة اﻟﺤﺎﻟﺔ اﻟﻌﺎدﻳﺔ اى اﻧﻪ اذا ﻟﻢ
ﻧﻮﺻﻞ ﻗﻴﻤﺔ اﻟﻰ اﻟﻤﺪﺧﻞ Countﻳﺘﻢ ﻗﺮاءة اﻟﻤﻠﻒ آﻠﻪ ﺣﺘﻰ ﻧﻬﺎﻳﺘﻪ.
اﻣﺜﻠﺔ:
ﻋﻨﺪ ﻓﺘﺢ ﻣﻠﻒ ﻳﻜﻮن ﻗﻴﻤﺔ File Positionﺗﺴﺎوى ﺻﻔﺮ وﻋﻨﺪ اﻟﻘﺮاءة ﺗﺘﻢ اﻟﻘﺮاءة ﻣﻦ اول اﻟﻤﻠﻒ ﺛﻢ ﺑﻌﺪ
ﻋﻤﻠﻴﺔ اﻟﻘﺮاءة ﺗﻜﻮن ﻗﻴﻤﺔ File Positionهﻰ رﻗﻢ اﺧﺮ ﺣﺮف ﺗﻢ ﻗﺮاءﺗﻪ ﻓﻌﻨﺪ اﻟﻘﺮاءة ﻣﺮة اﺧﺮى ﺗﺘﻢ ﻣﻦ
ﻣﻜﺎن File Positionاﻟﺠﺪﻳﺪ وهﻜﺬا ﺣﺘﻰ ﻳﺘﻢ ﻏﻠﻖ اﻟﻤﻠﻒ
78
ﻣﺜﺎل :
ﻣﻠﺤﻮﻇﺔ :ﻋﻨﺪ ﻗﺮاءة اﻟﺤﺮوف ﻣﻦ اﻟﻤﻠﻔﺎت ﻳﺠﺐ اﻻﺧﺬ ﻓﻰ اﻻﻋﺘﺒﺎر اﻟﻤﺴﺎﻓﺎت و اﻟﺤﺮف Tabواﻳﻀﺎ اﻟﺤﺮوف
اﻟﻐﺒﺮ ﻗﺎﺑﻠﺔ ﻟﻠﻄﺒﺎﻋﺔ ﻣﺜﻞ ﻧﻬﺎﻳﺔ اﻻﺳﻄﺮ واﻟﺒﺪاﻳﺔ ﻣﻦ اول اﻟﺴﻄﺮ (\n) Line Feedو Carriage Return
).(\rوﻟﻤﺸﺎهﺪة هﺬة اﻟﺤﺮوف ﻳﻤﻜﻦ ان ﻧﺠﻌﻞ String Indicatorﻓﻰ اﻟﺤﺎﻟﺔ ."\"Code Display
ﻳﻤﻜﻦ ان ﺗﻘﻮم هﺬة اﻟﺪاﻟﺔ ﺑﻘﺮاءة اﻻﺳﻄﺮ ﻣﻦ اﻟﻤﻠﻒ ﺳﻄﺮ ﺳﻄﺮ وذﻟﻚ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ اﻳﻘﻮﻧﺔ اﻟﺪاﻟﺔ وﻧﺨﺘﺎر Read
.Lines
79
وﻓﻰ هﺬة اﻟﺤﺎﻟﺔ اﻟﻤﺪﺧﻞ Countﻳﺤﺪد ﻋﺪد اﻻﺳﻄﺮ اﻟﺘﻰ ﺳﻴﺘﻢ ﻗﺮاءﺗﻬﺎ وﻋﻨﺪ ﺗﻮﺻﻴﻞ اﻟﻘﻴﻤﺔ ) (-1اﻟﻴﻪ ﻳﺘﻢ
ﻗﺮاءة آﻞ اﺳﻄﺮ اﻟﻤﻠﻒ .
ﺗﻘﻮم اﻟﺪاﻟﺔ ﺑﺎﺧﺮاج ﻣﺼﻔﻮﻓﺔ ﻣﻦ Stringsآﻞ Stringﺑﻬﺎ ﻓﻴﻪ ﻣﺤﺘﻮى ﺳﻄﺮ آﺎﻣﻞ ﻣﻦ اﻟﻤﻠﻒ.
وﻋﺪد Stringsاﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﺼﻔﻮﻓﺔ هﻮ ﻋﺪد اﻻﺳﻄﺮ اﻟﺘﻰ ﺗﻢ ﻗﺮاءﺗﻬﺎ.
اﻣﺜﻠﺔ :
ﻓﻰ ﺣﺎﻟﺔ ﻗﺮاءة اﻻﺳﻄﺮ اﻳﻀﺎ ﻳﺘﻢ ﻗﺮاءة اﻟﻤﻠﻒ ﺑﺸﻜﻞ ﺗﺘﺎﺑﻌﻰ
80
آﻴﻔﻴﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻨﻮع Binary
ﻳﺘﻢ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻨﻮع Binaryآﻤﺎ هﻰ دون ﺗﺤﻮﻳﻠﻬﺎ اﻟﻰ ASCII Codeﻟﺬﻟﻚ ﻓﻬﻰ اﺳﺮع
ﻓﻰ اﻟﺘﻌﺎﻣﻞ وﺗﺄﺧﺬ ﻣﺴﺎﺣﺔ اﺻﻐﺮ وهﺬة اﻟﻤﻠﻔﺎت ﻻﻳﻤﻜﻦ ﻓﺘﺤﻬﺎ ﺑﺎﻟﺒﺮاﻣﺞ ﺗﺤﺮﻳﺮ اﻟﻨﺼﻮص ﻣﺜﻞ .Notepad
وﻳﺘﻢ ﺗﺨﺰﻳﻦ اى ﻧﻮع ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻓﻰ هﺬة اﻟﻨﻮﻋﻴﺔ ﻣﻦ اﻟﻤﻠﻔﺎت وﻟﻜﻰ ﻧﻘﺮأ ﻣﺤﺘﻮى هﺬة اﻟﻤﻠﻔﺎت ﻳﺠﺐ ان ﻧﻌﻠﻢ ﻧﻮع
اﻟﺒﻴﺎﻧﺎت اﻟﻤﻮﺟﻮدة ﻓﻰ اﻟﻤﻠﻒ وآﻴﻔﻴﺔ ﺗﺨﺰﻳﻨﻬﺎ .ﻟﺬﻟﻚ ﻋﺎدة ﻧﻘﻮم ﺑﻌﻤﻞ ﺑﺮﻧﺎﻣﺞ ﻟﺘﺨﺰﻳﻦ اﻟﻤﻠﻔﺎت واﺧﺮ ﻟﻔﺘﺢ هﺬة اﻟﻤﻠﻔﺎت
او ان ﻳﻘﻮم ﻧﻔﺲ اﻟﺒﺮﻧﺎﻣﺞ ﺑﻌﻤﻞ اﻟﻮﻇﻴﻔﺘﻴﻦ ﻣﻌﺎ اﻟﻜﺘﺎﺑﺔ واﻟﻘﺮاءة.
وﺗﻮﺟﺪ اﻟﺪاﻟﺔ Write To Binary Fileﻟﻠﻜﺘﺎﺑﺔ ﻓﻰ اﻟﻤﻠﻔﺎت و اﻟﺪاﻟﺔ Read From Binary Fileﻟﻠﻘﺮاءة ﻣﻦ
اﻟﻤﻠﻒ.
اﻟﺪاﻟﺔ Write to Binary File
ﺗﺴﺘﺨﺪم هﺬة اﻟﺪاﻟﺔ ﻟﻜﺘﺎﺑﺔ ﺑﻴﺎﻧﺎت ﻓﻰ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻨﻮع .Binaryوهﺬة اﻟﺒﻴﺎﻧﺎت ﻳﻤﻜﻦ ان ﺗﻮﺟﺪ ﻓﻰ اى ﺻﻮرة
)(... Waveform ، Cluster ، Array
81
وﻣﺪاﺧﻞ هﺬة اﻟﺪاﻟﺔ هﻰ :
?: Prepend Array or string Sizeوﻧﺠﻌﻞ ﻗﻴﻤﺘﻪ
: Trueاذا اردﻧﺎ ان ﻳﺮﻓﻖ LabVIEWﻣﻌﻠﻮﻣﺎت ﻋﻦ ﺣﺠﻢ Stringاو Arrayاذا آﻨﺎ ﻧﺨﺰن اى
ﻣﻦ اﻟﻨﻮﻋﻴﻦ .و Trueهﻰ ﻗﻴﻤﺔ اﻟﻤﺪﺧﻞ اذا ﻟﻢ ﻧﻮﺻﻞ ﻟﻪ اى ﻗﻴﻤﺔ.
:Falseاذا اردﻧﺎ ﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت ﺑﺪون اى ﻣﻌﻠﻮﻣﺎت اﺿﺎﻓﻴﺔ ﻋﻦ اﻟﺤﺠﻢ.
:Promptﻣﺪﺧﻞ اﻟﺮﺳﺎﻟﺔ اﻟﺘﻰ ﺳﺘﻈﻬﺮ ﻟﻠﻤﺴﺘﺨﺪم ﻓﻰ ﺣﺎﻟﺔ اﻇﻬﺎر ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ ﻟﻠﻤﺴﺘﺨﺪم ﻟﺘﺤﺪﻳﺪ اﻟﻤﻠﻒ اﻟﻤﺮاد
اﻟﺘﺨﺰﻳﻦ ﻓﻴﻪ .ﻧﺺ اﻟﺮﺳﺎﻟﺔ ﺳﻴﻜﻮن " "Choose or enter file pathاذا ﻟﻢ ﻳﺘﻢ اﻟﺘﻮﺻﻴﻞ ﻟﻬﺬا
اﻟﻤﺪﺧﻞ.
: Fileﻳﺘﻢ ﺗﻮﺻﻴﻞ اﻟﻰ هﺬا اﻟﻤﺪﺧﻞ ﻣﺴﺎر او Refnumﻟﻠﻤﻠﻒ اﻟﻤﺮاد اﻟﺘﺨﺰﻳﻦ ﻓﻴﻪ.وﻓﻰ ﺣﺎﻟﺔ ﻋﺪم اﻟﺘﻮﺻﻴﻞ ﻟﻬﺬا
اﻟﻤﺪﺧﻞ ﻳﺘﻢ اﻇﻬﺎر ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ ﻟﻠﻤﺴﺘﺨﺪم ﻋﻨﺪ ﺗﻨﻔﻴﺬ اﻟﺪاﻟﺔ.
وﻓﻰ ﺣﺎﻟﺔ ﺗﻢ ﺗﻮﺻﻴﻞ ﻣﺴﺎر ﻟﻠﻤﻠﻒ ﻟﻤﺪﺧﻞ Fileاو اﻇﻬﺎر ﻧﺎﻓﺬة اﻟﺘﺼﻔﺢ ﻓﺎن اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﺎﻧﺸﺎء اﻟﻤﻠﻒ اذا ﻟﻢ ﻳﻜﻦ
ﻣﻮﺟﻮدا او ﺗﻘﻮم ﺑﺤﺬف ﻣﺤﺘﻮﻳﺎت اﻟﻤﻠﻒ وﺗﺨﺰﻳﻦ اﻟﺒﻴﺎﻧﺎت اﻟﺠﺪﻳﺪة اذا آﺎن ﻣﻮﺟﻮدا
اﻣﺎ ﻓﻰ ﺣﺎﻟﺔ ﺗﻮﺻﻴﻞ Refnumﻓﺎن اﻟﺪاﻟﺔ ﺗﻘﻮم ﺑﺎﻟﻜﺘﺎﺑﺔ ﻓﻰ اﻟﻤﻠﻒ ﻓﻰ اﻟﻤﻜﺎن اﻟﺬى ﻳﺤﺪدﻩ File Position
واﻟﺬى ﺗﻜﻮن ﻗﻴﻤﺘﻪ ﻓﻰ ﺑﺪاﻳﺔ ﻓﺘﺢ اﻟﻤﻠﻒ ﺑﺼﻔﺮ )اى ﺑﺪاﻳﺔ اﻟﻤﻠﻒ(
وﻟﺘﻐﻴﻴﺮ ﻣﻜﺎن File Positionﻧﺴﺘﺨﺪم اﻟﺪوال Get File Positionو .Set File Position
وﻟﻠﺘﺨﺰﻳﻦ ﻓﻰ ﻧﻬﺎﻳﺔ اﻟﻤﻠﻒ ﻧﺠﻌﻞ File Positionﻳﺴﺎوى ﺳﻌﺔ اﻟﻤﻠﻒ .وﻟﻠﺤﺼﻮل ﻋﻠﻰ ﺳﻌﺔ اﻟﻤﻠﻒ ﻧﺴﺘﺨﺪم اﻟﺪاﻟﺔ
Get File Sizeآﻤﺎ رأﻳﻨﺎ ﻓﻰ ﺣﺎﻟﺔ اﻟﺘﻌﺎﻣﻞ ﻣﻊ اﻟﻤﻠﻔﺎت ﻣﻦ اﻟﻨﻮع .Text
82
:Dataوﻳﺘﻢ ﺗﻮﺻﻴﻞ اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﻧﺮﻳﺪ ﺗﺨﺰﻳﻨﻬﺎ اﻟﻰ هﺬا اﻟﻤﺪﺧﻞ وهﺬة اﻟﺒﻴﺎﻧﺎت ﻳﻤﻜﻦ ان ﺗﻜﻮن ﻓﻰ اى ﺻﻮرة
)ﻣﺼﻔﻮﻓﺔ (... String ،Cluster ،
: Byte Orderرﻗﻢ ﻳﺤﺪد ﻃﺮﻳﻘﺔ ﺗﻤﺜﻞ اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ ﻓﻰ اﻟﺬاآﺮة ﻓﻜﻤﺎ ﻧﻌﻠﻢ ان اﻻرﻗﺎم اﻟﺼﺤﻴﺤﺔ ﻳﻤﻜﻦ ان
ﺗﺘﻜﻮن ﻣﻦ اآﺜﺮ ﻣﻦ Byteﻣﺜﻞ .(32 Bit) 4Bytes
و Byte Orderﻳﺤﺪد ﺗﺮﺗﻴﺐ ﺗﺨﺰﻳﻦ Bytesاﻟﻤﻜﻮن ﻟﻠﺮﻗﻢ ﻓﻰ اﻟﺬاآﺮة.
) :Big-Endian (0هﻮ ﻳﻌﻨﻰ ان اﻟﺒﺎﻳﺖ اﻻآﺒﺮ ﻟﻠﺮﻗﻢ ﻳﺨﺰن ﻓﻰ اﻟﻌﻨﻮان اﻻﺻﻐﺮ ﻓﻰ اﻟﺬاآﺮة
وﻳﺴﺘﺨﺪم هﺬا اﻟﺘﺮﺗﻴﺐ ﻓﻰ اﻧﻈﻤﺔ اﻟﺘﺸﻐﻴﻞ ﻣﺜﻞ .Mac
وهﺬة هﻰ ﻗﻴﻤﺔ اﻟﻤﺪﺧﻞ اذا ﻟﻢ ﻳﺘﻢ اﻟﺘﻮﺻﻴﻞ اﻟﻴﻪ.
) :Host Order ، Native (1وهﻮ ﻳﻌﻨﻰ اﺗﺒﺎع اﻟﺘﺮﺗﻴﺐ اﻟﻤﺘﺒﻊ ﻓﻰ اﻟﻨﻈﺎم اﻟﺘﺸﻐﻴﻞ
اﻟﻤﻮﺟﻮد .
): Little-Endian (2و ﻳﻌﻨﻰ ان اﻟﺒﺎﻳﺖ اﻻﺻﻐﺮ ﻟﻠﺮﻗﻢ ﻳﺨﺰن ﻓﻰ اﻟﻌﻨﻮان اﻻﺻﻐﺮ ﻓﻰ
اﻟﺬاآﺮة وﻳﺴﺘﺨﺪم هﺬة اﻟﺘﺮﺗﻴﺐ ﻓﻰ اﻧﻈﻤﺔ اﻟﺘﺸﻐﻴﻞ ﻣﺜﻞ Windowsو .Linux
83
ﻣﻠﺤﻮﻇﺔ :ﻳﺘﻢ ادراج Sin Wave.viﻣﻦ
Functions Palette>>Programming>>Signal Generation
84
واﻟﻤﺪﺧﻞ : Data typeﻳﺤﺪد ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺘﻰ ﺳﻴﺘﻢ ﻗﺮاءﺗﻬﺎ وﻻﺑﺪ ان ﺗﺘﻮاﻓﻖ ﻣﻊ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﻤﺨﺰﻧﺔ.
و اﻟﻤﺪﺧﻞ : Countﻳﺤﺪد ﻋﺪد اﻟﻘﻴﻢ ﻣﻦ ﻧﻮع اﻟﺒﻴﺎﻧﺎت اﻟﺬى ﺣﺪدﻧﺎﻩ واذا ﻟﻢ ﻳﻮﺻﻞ هﺬة اﻟﻤﺪﺧﻞ ﻳﺘﻢ ﻗﺮاءة ﻗﻴﻤﺔ واﺣﺪة
ﻣﻦ ﻧﻮع اﻟﺒﻴﺎﻧﺎت.
آﻤﺎ ﻳﻤﻜﻦ ﻗﺮاءة اﻟﻤﻠﻒ ﺑﻄﺮﻳﻘﺔ اﺧﺮى ﺣﻴﺚ اﻧﻨﺎ ﻧﻌﻠﻢ ان اﻟﻘﻴﻢ اﻟﻤﺨﺰﻧﺔ هﻰ ارﻗﺎم ﻣﻦ اﻟﻨﻮع DBLوان هﺬة اﻟﻨﻮع
ﻣﻦ اﻟﺒﻴﺎﻧﺎت ﻳﺸﻐﻞ ﺳﻌﺔ ﺗﺨﺰﻳﻨﻴﺔ ﺗﺴﺎوى 8ﺑﺎﻳﺖ .
ﺑﺎﻟﺘﺎﻟﻰ ﺑﻤﻌﺮﻓﺔ ﺣﺠﻢ اﻟﻤﻠﻒ ﺑﺎﻟﺒﺎﻳﺖ ﺳﻴﻜﻮن ﻋﺪد اﻻرﻗﺎم اﻟﻤﺨﺰﻧﺔ ﺗﺴﺎوى ﺧﺎرج ﻗﺴﻤﺔ ﺣﺠﻢ اﻟﻤﻠﻒ ﻋﻠﻰ .8
وﻳﻤﻜﻦ ﻣﻌﺮﻓﺔ ﺣﺠﻢ اﻟﻤﻠﻒ ﺑﺎﺳﺘﺨﺪام اﻟﺪاﻟﺔ Get File sizeاﻟﻤﻮﺟﻮدة ﻓﻰ
Functions Palette >>Programming>>I/O File>>Advanced File Functions
85
86
ﺗﻢ ﺑﺤﻤﺪ اﷲ اﻻﻧﺘﻬﺎء ﻣﻦ اﻟﺪرس
اﻟﻰ اﻟﻠﻘﺎء ﺑﺎذن اﷲ ﻣﻊ اﻟﺪرس اﻟﻘﺎدم
photonlv@gmail.com
87