सारांश

मैं अपने Windows 10 को जोड़ने के लिए इस USB-to-RJ45 केबल का उपयोग कर रहा हूं डेवलपर वर्कस्टेशन को EPEver Tracer 3210an सोलर चार्ज कंट्रोलर

मैं डिवाइस से कनेक्ट करने, डेटा पुनर्प्राप्त करने और डिवाइस पैरामीटर को नियंत्रित करने का प्रयास करने के लिए minimalmodbus मॉड्यूल के साथ पायथन 3.8.6 का उपयोग कर रहा हूं।

अपेक्षित परिणाम

चार्ज कंट्रोलर फोटोवोल्टिक (पीवी) पैनल के इनपुट वोल्टेज को लौटाता है।

वास्तविक परिणाम

MinimalModbus debug mode. Create serial port COM4
MinimalModbus debug mode. Will write to instrument (expecting 7 bytes back): '\x01\x041\x00\x00\x01?6' (01 04 31 00 00 01 3F 36)
MinimalModbus debug mode. Clearing serial buffers for port COM4
MinimalModbus debug mode. No sleep required before write. Time since previous read: 105406.00 ms, minimum silent period: 1.75 ms.
MinimalModbus debug mode. Response from instrument: '' () (0 bytes), roundtrip time: 1015.0 ms. Timeout for reading: 1000.0 ms.

Traceback (most recent call last):
  File "tempCodeRunnerFile.python", line 17, in <module>
    pv_voltage = ins.read_register(PV_VOLTAGE, 2, 4, False) 
  File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 441, in read_register
    return self._generic_command(
  File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1170, in _generic_command
    payload_from_slave = self._perform_command(functioncode, payload_to_slave)
  File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1240, in _perform_command
    response = self._communicate(request, number_of_bytes_to_read)
  File "C:\Users\TrevorSullivan\scoop\apps\python\current\lib\site-packages\minimalmodbus.py", line 1406, in _communicate
    raise NoResponseError("No communication with the instrument (no answer)")
minimalmodbus.NoResponseError: No communication with the instrument (no answer)

कोड

import minimalmodbus
import serial

ins = minimalmodbus.Instrument('COM4', 1, debug=True)

ins.serial.baudrate = 115200
ins.serial.bytesize = 8
ins.serial.stopbits = 1
ins.serial.parity = serial.PARITY_NONE
ins.serial.timeout = 1

ins.mode = minimalmodbus.MODE_RTU
ins.clear_buffers_before_each_transaction = True

PV_VOLTAGE = 0x3100

pv_voltage = ins.read_register(PV_VOLTAGE, 2, 4, False) 
print(pv_voltage)

मैंने जो कोशिश की है

  • इसके बजाय pymodbus मॉड्यूल का उपयोग करें
  • easymodbus मॉड्यूल की कोशिश की
  • बॉड दर को 9600 में बदल दिया
  • RTU के बजाय ASCII मोड का उपयोग करने का प्रयास किया (99% विश्वास है कि इसे RTU मोड की आवश्यकता है)
  • सीरियल डिवाइस पर COM पोर्ट को COM3 से COM4 में बदला गया
  • रिबूट किया गया कंप्यूटर
  • एमटी -50 डिस्प्ले को चार्ज कंट्रोलर से कनेक्ट किया गया (पूरी तरह से काम करता है)
  • parity सेटिंग को अन्य मानों (सम, विषम, स्थान, आदि) में बदला गया

प्रश्न

  1. मैं अपने डेवलपर वर्कस्टेशन को चार्ज कंट्रोलर से सफलतापूर्वक कैसे जोड़ सकता हूं?
  2. क्या यह संभव है कि यह केबल अभी मरी हो?
  3. यह सुनिश्चित करने के लिए केबल का परीक्षण करने के लिए मैं और क्या कर सकता हूं?
  4. चार्ज कंट्रोलर का परीक्षण करने के लिए मैं और क्या कर सकता हूं, यह सुनिश्चित करने के लिए कि यह प्रतिक्रिया दे रहा है?
2
user189198 7 अक्टूबर 2020, 22:38
एक बेवकूफी भरा सवाल लगता है, लेकिन दस्तावेज़ीकरण के अनुसार .read_register का उद्देश्य है एक रजिस्टर पढ़ें। यदि आप कोई मान प्रदान करना चाहते हैं तो आपको .write_register का उपयोग करना चाहिए। क्या आपने पहले ही यह कोशिश की है?
 – 
NWiogrhkt
8 अक्टूबर 2020, 02:45
खैर, इस विशेष उदाहरण कोड में, मैं सौर सरणी (पीवी, फोटोवोल्टिक पैनल) के वोल्टेज को पढ़ने की कोशिश कर रहा हूं। बिल्कुल भी बेवकूफी भरा सवाल नहीं है, लेकिन दुर्भाग्य से यहाँ पहेली को हल नहीं करता है। धन्यवाद!
 – 
user189198
8 अक्टूबर 2020, 02:54

3 जवाब

सबसे बढ़िया उत्तर

इन नियंत्रकों के साथ संचार (मैनुअल) RS485 के माध्यम से है (RJ45 कनेक्टर के माध्यम से वितरित)। यह केवल मैनुअल (तकनीकी विनिर्देश अनुभाग में "RS485 इंटरफ़ेस") में संक्षेप में उल्लेख किया गया है।

आप जिस केबल का उपयोग कर रहे हैं वह एक राउटर कंसोल केबल प्रतीत होती है, जो मुझे विश्वास है, RS232 प्रोटोकॉल का उपयोग करता है (सिस्को से एक उदाहरण के रूप में दस्तावेज़ देखें)। RS232 और RS485 अलग और असंगत हैं, इसलिए यह केबल काम नहीं करेगी।

इस नियंत्रक के लिए मैनुअल अधिक विस्तार में नहीं जाता है और मैं EPEVER वेबसाइट पर एक मॉडबस मैनुअल नहीं देख सका। मैं ट्रेसर-बीएन श्रृंखला इकाइयों का उपयोग करता हूं और हमेशा समर्थन ने मुझे मोडबस सेटअप का विवरण देने वाला एक मैनुअल ईमेल किया; चूंकि आपकी इकाई एमटी 50 रिमोट मीटर का भी समर्थन करती है, मैं मान रहा हूं कि इसके रजिस्टर समान हैं। आप शायद "सामान्य सॉफ़्टवेयर या एमटी 50 एलसीडी यूनिट" (उद्धरण के साथ) खोज कर मैनुअल पा सकते हैं - मेरा मानना ​​​​है कि संस्करण 2.5 नवीनतम है (नोट: मैं लिंक पोस्ट नहीं कर रहा हूं क्योंकि यह उपलब्ध नहीं लगता है आधिकारिक वेबसाइट इसलिए अपने जोखिम पर क्लिक करें!)

RJ45 वायरिंग (उपरोक्त मैनुअल से) है:

Pin  | Define 
-----|-------------------------------------
1    | Power supply output +5V or +7.5V 
2    | Power supply output +5V or +7.5V 
3    | RS-485-B 
4    | RS-485-B 
5    | RS-485-A 
6    | RS-485-A 
7    | Ground 
8    | Ground

नोट: इन उपकरणों को श्रृंखला में जोड़ा जा सकता है; यदि आप केवल एक उपयोग पिन 3, 5 और 7 से कनेक्ट कर रहे हैं। मैंने पाया है कि विश्वसनीय कॉम के लिए एक ग्राउंड कनेक्शन की आवश्यकता है।

Note2: Epever के पास एक 'आधिकारिक' USB से RJ45 केबल (CC-USB-RS485-150U) है; मेरे पास इनमें से तीन हैं और मुझे कोई काम नहीं मिला (एक स्थानीय वितरक ने इसी तरह के मुद्दों का उल्लेख किया)। ये केबल Amazon से उपलब्ध हैं। कंसोल केबल लिंक)।

यह जांचने का एक अच्छा तरीका है कि आपकी केबल सही तरीके से वायर्ड है या नहीं, इसका उपयोग चार्ज कंट्रोलर सॉफ़्टवेयर (मेरा मानना ​​है कि यह इकाइयों के साथ संचार करने के तरीके का उपयोग करता है लेकिन यह संभव है कि वे किसी अन्य प्रोटोकॉल का समर्थन करते हों)।

परीक्षण के लिए मैं ऊपर (115200, एन, 8, 1) के रूप में वायर्ड एक सस्ते यूएसबी-> आरएस 485 एडाप्टर का उपयोग करता हूं और यह बहुत अच्छी तरह से काम करता है (इनमें से लगभग 10 आरएस 485 में निर्मित उपकरणों से जुड़े क्षेत्र में हैं)। USB->485 एडॉप्टर जिसका मैं उपयोग करता हूं Aliexpress से था (10 प्राप्त किया और कोई नहीं था मुद्दे) लेकिन आप कुछ ऐसा ही प्राप्त कर सकते हैं अमेज़ॅन से (लेकिन जैसा कि मुझे लगता है कि उल्लेख किया गया है) आपको ग्राउंड कनेक्टर की आवश्यकता है जो सभी एडेप्टर के पास नहीं है - मैं दो वायर कनेक्शन के साथ ये मज़बूती से काम नहीं कर सका)। मैंने एक मानक नेटवर्क लीड को आधा में काटा और इसे इस एडेप्टर से जोड़ा (क्रिम्पिंग टूल्स आदि को खोदकर बचाया); मैंने इस वायरिंग सेटअप को कहीं और इस्तेमाल करते नहीं देखा है, इसलिए यह मत सोचिए कि आप एक ऑफ-द-शेल्फ (अन्य तो एपवर से) खरीद पाएंगे।

3
Brits 8 अक्टूबर 2020, 22:16
अंतर्दृष्टि के लिए धन्यवाद। मैं स्पष्ट रूप से USB कंसोल केबल के बारे में गलत था। USB-to-RS-485 केबल प्राप्त करने का सबसे आसान तरीका क्या है? मैंने अभी-अभी एक महिला-से-महिला RJ45 एडॉप्टर का आदेश दिया है। क्या मैं डिवाइस के साथ इंटरफेस करने के लिए कंसोल केबल और कस्टम CAT5 केबल के साथ इस एडेप्टर का उपयोग कर सकता हूं?
 – 
user189198
8 अक्टूबर 2020, 17:58
कंसोल केबल काम नहीं करेगा (RS232 और RS485 अलग-अलग वोल्टेज/सिग्नलिंग वगैरह) ताकि यूएसबी अडैप्टर काम न करे। आप एपवर से एक एडेप्टर खरीद सकते हैं (ध्यान दें कि मेरे पास इनके साथ समस्या थी) या कस्टम वायरिंग के साथ एक मानक यूएसबी-> आरएस 485 एडेप्टर का उपयोग करें (इस पर मेरे उत्तर में कुछ विवरण जोड़े हैं)।
 – 
Brits
8 अक्टूबर 2020, 21:51
मैंने एक DTECH USB RS-485 अडैप्टर ऑर्डर किया, और उसमें एक CAT-6 केबल लगा दी। अच्छी तरह से काम। मदद के लिए बहुत - बहुत धन्यवाद।
 – 
user189198
19 अक्टूबर 2020, 01:39

ठीक है, ऊपर इस्तेमाल करने के लिए सही शब्द होगा 8P8C के बजाय RJ45. 8P8C का उपयोग RJ पंजीकृत जैक प्रकारों की एक विस्तृत विविधता के लिए किया जाता है। हो सकता है कि वहां सूचीबद्ध प्रकारों में से एक ट्रेसर द्वारा उपयोग किए जा रहे कार्यों से मेल खाता हो?

0
Jeremy Tammik 12 जून 2021, 12:07
1
8P8C कनेक्टर के लिए सही शब्द है लेकिन RJ45 अधिक सामान्यतः उपयोग/समझा जाता है (भले ही यह 100% सही न हो)। RJ45 भी EPEVER प्रलेखन में इस्तेमाल किया जाने वाला शब्द है जो यह भी अनुमान लगाता है कि यह एक कस्टम वायरिंग पैटर्न है ("चेतावनी: RJ45 इंटरफ़ेस को केवल हमारी कंपनी के उत्पादों से जुड़ने या योग्य इंजीनियर द्वारा संचालित करने की अनुमति है। (RJ45 इंटरफ़ेस वोल्टेज 5V है और वर्तमान 50mA है)")। ध्यान दें कि यह उत्तर शायद मेरे उत्तर पर एक टिप्पणी होना चाहिए।
 – 
Brits
14 जून 2021, 11:08
हां, पूरी तरह सहमत हूं, यह आपके उत्तर पर एक टिप्पणी होनी चाहिए। मैंने प्रश्न को लगभग 20 बार और आपके उत्तर को लगभग 50 बार फिर से पढ़ना और पढ़ना समाप्त किया, और अब मेरे पास एक कामकाजी कनेक्शन है। आप दोनों को बहुत बहुत धन्यवाद। बहुत देर से, मुझे ट्रेवर बहुत उपयोगी ब्लॉग पोस्ट भी मिला। तो, शायद, रास्पबेरी पीआई सूची में अगला है।
 – 
Jeremy Tammik
15 जून 2021, 12:55