2012-04-03 10 views
5

मैंने केवल संक्षेप में सी # में काम करना शुरू कर दिया है और मैं वर्तमान में कुछ अन्य उपकरणों के साथ संवाद करने के लिए आरएस -485 का उपयोग कर रहा हूं लेकिन मुझे लगता है कि वास्तव में अन्य डिवाइसों को जवाब देने में सक्षम नहीं है । मैं सोच रहा था कि सीरियल संचार का उपयोग कर किसी विशिष्ट डिवाइस पर लिखने का कोई तरीका था क्योंकि यह सभी COM पोर्ट 4 के माध्यम से जुड़ा हुआ है। मुझे पहले से ही serial.Write() पता है; लेकिन जहां तक ​​मुझे पता है कि यह आपको यह चुनने का विकल्प नहीं देता है कि आप किस पते को भेजना चाहते हैं। क्या कोई ऐसा व्यक्ति है जो इस प्रश्न के उत्तरकर्ता को जान सके?सी # एक पोर्ट पर एकाधिक उपकरणों के साथ सीरियल संचार

बेस्ट सादर Cvr

प्रतिक्रिया के लिए धन्यवाद। उन्होंने बहुत मदद की :)

उत्तर

8

क्रिस्टोफ सही है, लेकिन विस्तृत करने के एक छोटे से अधिक:

जब RS232 के साथ संवाद स्थापित आप बस दो समाप्ति बिंदुओं, अपने पीसी और बाहरी उपकरण है। आप इसे कमांड भेजकर डिवाइस के साथ संवाद करते हैं, या यह उन्हें बिना किसी भी भेज सकता है। यह सरल ASCII पाठ या बाइनरी/हेक्स कोड हो सकता है। जिस तरह से यह दो उपकरणों के बीच संचार करता है उसे प्रोटोकॉल के रूप में जाना जाता है - और आपके एप्लिकेशन को इस प्रोटोकॉल को डिवाइस पर 'बात करने' में सक्षम होने के लिए लागू करना होगा।

आरएस 485 आरएस 232 से अलग है, जिसमें आप अपने पीसी से जुड़े एक ही सीरियल पोर्ट पर डेज़ी चेन एकाधिक डिवाइस कर सकते हैं। आपके डिवाइस के आधार पर इसका अपना प्रोटोकॉल होगा जो यह समझता है कि आपको अध्ययन करने और परिचित होने की आवश्यकता होगी। यह उन डिवाइसों के साथ आपूर्ति की जानी चाहिए जिन्हें आप कनेक्ट कर रहे हैं।

आमतौर पर, प्रोटोकॉल (कम से कम) होगा निम्न जानकारी:

  • डिवाइस पता है - यह इस का उपयोग करता है भेद करने के लिए आप किसी भी उपकरण, से बात करना चाहते हैं आमतौर पर हार्डवेयर टॉगल स्विच या द्वारा निर्धारित किया जा सकता है जैसे
  • कमान - वास्तविक आदेश है कि आप इकाई के लिए
  • डाटा भेजना चाहते हैं - कोई अतिरिक्त डेटा आप विशिष्ट आदेश

तो के लिए पारित करने के लिए आवश्यकता हो सकती है, एक परीक्षा मिसाल आदेश आप इकाई के लिए भेज सकते हैं की तरह दिखाई देगा (ध्यान दें कि यह केवल एक उदाहरण है):

$01FF9A 

कहाँ:

01 मॉड्यूल या उपकरणों विशिष्ट पता FF है आदेश प्रकार 9A है डेटा

तो यहां, डिवाइस पता 01 के साथ मॉड्यूल कमांड को पढ़ेगा और 'हे आप मुझसे बात कर रहे हैं' को घटाएंगे और फिर कमांड जानकारी को संसाधित करेंगे। अन्य सभी उपकरणों को भी डेटा प्राप्त होगा, लेकिन यह महसूस होगा कि यह स्वयं के लिए नियत नहीं है।

आमतौर पर 485 रुपये डिवाइस संवाद हेक्स डेटा का उपयोग कर, तो आपके आवेदन किसी भी प्रासंगिक प्रतिक्रियाओं आदि के लिए से आप के लिए हेक्स डेटा भेजने के लिए Serial.Write(byte[], int,int) को देखने के लिए आवश्यकता हो सकती है के लिए रूपांतरण संभाल बाह्य उपकरणों के लिए हेक्स आदेश भेजने की आवश्यकता होगी, और डिवाइस

नेट सीरियल पोर्ट वर्ग के एक अधिक विस्तृत विवरण के लिए, http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx

1

आप सीरियलपोर्ट श्रेणी का एक उदाहरण बना सकते हैं।
वहां आप बॉड्रेट, पोर्टनाम इत्यादि को परिभाषित कर सकते हैं
ओपन() विधि को कॉल करने के बाद आप पोर्ट को या उससे डेटा पढ़ या लिख ​​सकते हैं।

var port = new SerialPort(); 
port.PortName = "COM4"; 
port.Open(); 
+0

इस का उल्लेख उसके सवाल का जवाब नहीं है। –