Changes for page RS485-LN – RS485 to LoRaWAN Converter User Manual
Last modified by Bei Jinggeng on 2025/01/16 11:36
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -548,142 +548,282 @@ 548 548 549 549 550 550 551 + 551 551 ==== **RS485 Debug Command** ==== 552 552 554 +((( 553 553 This command is used to configure the RS485 devices; they won’t be used during sampling. 556 +))) 554 554 555 -* **AT Command** 558 +* ((( 559 +**AT Command** 560 +))) 556 556 557 557 (% class="box infomessage" %) 558 558 ((( 564 +((( 559 559 **AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 560 560 ))) 567 +))) 561 561 569 +((( 562 562 m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 571 +))) 563 563 564 -* **Downlink Payload** 573 +* ((( 574 +**Downlink Payload** 575 +))) 565 565 577 +((( 566 566 Format: A8 MM NN XX XX XX XX YY 579 +))) 567 567 581 +((( 568 568 Where: 583 +))) 569 569 570 -* MM: 1: add CRC-16/MODBUS ; 0: no CRC 571 -* NN: The length of RS485 command 572 -* XX XX XX XX: RS485 command total NN bytes 573 -* YY: How many bytes will be uplink from the return of this RS485 command, 574 -** if YY=0, RS485-LN will execute the downlink command without uplink; 575 -** if YY>0, RS485-LN will uplink total YY bytes from the output of this RS485 command; Fport=200 576 -** if YY=FF, RS485-LN will uplink RS485 output with the downlink command content; Fport=200. 585 +* ((( 586 +MM: 1: add CRC-16/MODBUS ; 0: no CRC 587 +))) 588 +* ((( 589 +NN: The length of RS485 command 590 +))) 591 +* ((( 592 +XX XX XX XX: RS485 command total NN bytes 593 +))) 594 +* ((( 595 +((( 596 +YY: How many bytes will be uplink from the return of this RS485 command, 597 +))) 577 577 599 +* ((( 600 +if YY=0, RS485-LN will execute the downlink command without uplink; 601 +))) 602 +* ((( 603 +if YY>0, RS485-LN will uplink total YY bytes from the output of this RS485 command; Fport=200 604 +))) 605 +* ((( 606 +if YY=FF, RS485-LN will uplink RS485 output with the downlink command content; Fport=200. 607 +))) 608 +))) 609 + 610 +((( 578 578 **Example 1** ~-~-> Configure without ask for uplink (YY=0) 612 +))) 579 579 614 +((( 580 580 To connect a Modbus Alarm with below commands. 616 +))) 581 581 582 -* The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 618 +* ((( 619 +The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 620 +))) 583 583 584 -* The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 622 +* ((( 623 +The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 624 +))) 585 585 626 +((( 586 586 So if user want to use downlink command to control to RS485 Alarm, he can use: 628 +))) 587 587 630 +((( 588 588 (% style="color:#4f81bd" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 632 +))) 589 589 634 +((( 590 590 (% style="color:#4f81bd" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 636 +))) 591 591 638 +((( 592 592 A8 is type code and 01 means add CRC-16/MODBUS at the end, the 3^^rd^^ byte is 06, means the next 6 bytes are the command to be sent to the RS485 network, the final byte 00 means this command don’t need to acquire output. 640 +))) 593 593 642 +((( 643 + 644 +))) 594 594 646 +((( 595 595 **Example 2** ~-~-> Configure with requesting uplink and original downlink command (**YY=FF**) 648 +))) 596 596 650 +((( 597 597 User in IoT server send a downlink command: (% style="color:#4f81bd" %)**A8 01 06 0A 08 00 04 00 01 YY** 652 +))) 598 598 654 +((( 655 + 656 +))) 599 599 658 +((( 600 600 RS485-LN got this downlink command and send (% style="color:#4f81bd" %)**0A 08 00 04 00 01 **(%%)to Modbus network. One of the RS485 sensor in the network send back Modbus reply **0A 08 00 04 00 00**. RS485-LN get this reply and combine with the original downlink command and uplink. The uplink message is: 660 +))) 601 601 662 +((( 602 602 **A8** (% style="color:#4f81bd" %)**0A 08 00 04 00 **(% style="color:red" %)**01 06** ** **(% style="color:green" %)**0A 08 00 04 00 00** 664 +))) 603 603 666 +((( 604 604 [[image:1654159460680-153.png]] 668 +))) 605 605 606 606 607 607 672 + 608 608 ==== **Set Payload version** ==== 609 609 675 +((( 610 610 This is the first byte of the uplink payload. RS485-BL can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload. 677 +))) 611 611 612 -* **AT Command:** 679 +* ((( 680 +**AT Command:** 681 +))) 613 613 614 614 (% class="box infomessage" %) 615 615 ((( 685 +((( 616 616 **AT+PAYVER: Set PAYVER field = 1** 617 617 ))) 688 +))) 618 618 619 -* **Downlink Payload:** 690 +* ((( 691 +**Downlink Payload:** 692 +))) 620 620 694 +((( 621 621 **0xAE 01** ~-~-> Set PAYVER field = 0x01 696 +))) 622 622 698 +((( 623 623 **0xAE 0F** ~-~-> Set PAYVER field = 0x0F 700 +))) 624 624 625 625 626 626 704 + 627 627 ==== **Set RS485 Sampling Commands** ==== 628 628 707 +((( 629 629 AT+COMMANDx or AT+DATACUTx 709 +))) 630 630 711 +((( 631 631 These three commands are used to configure how the RS485-LN polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]]. 713 +))) 632 632 715 +((( 716 + 717 +))) 633 633 634 -* **AT Command:** 719 +* ((( 720 +**AT Command:** 721 +))) 635 635 636 636 (% class="box infomessage" %) 637 637 ((( 725 +((( 638 638 **AT+COMMANDx: Configure RS485 read command to sensor.** 639 639 ))) 728 +))) 640 640 641 641 (% class="box infomessage" %) 642 642 ((( 732 +((( 643 643 **AT+DATACUTx: Configure how to handle return from RS485 devices.** 644 644 ))) 735 +))) 645 645 737 +((( 738 + 739 +))) 646 646 647 -* **Downlink Payload:** 741 +* ((( 742 +**Downlink Payload:** 743 +))) 648 648 745 +((( 649 649 **0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 747 +))) 650 650 749 +((( 651 651 (% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 751 +))) 652 652 753 +((( 653 653 Format: AF MM NN LL XX XX XX XX YY 755 +))) 654 654 757 +((( 655 655 Where: 759 +))) 656 656 657 -* MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 658 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 659 -* LL: The length of AT+COMMAND or AT+DATACUT command 660 -* XX XX XX XX: AT+COMMAND or AT+DATACUT command 661 -* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 761 +* ((( 762 +MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 763 +))) 764 +* ((( 765 +NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 766 +))) 767 +* ((( 768 +LL: The length of AT+COMMAND or AT+DATACUT command 769 +))) 770 +* ((( 771 +XX XX XX XX: AT+COMMAND or AT+DATACUT command 772 +))) 773 +* ((( 774 +YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-LN will execute an uplink after got this command. 775 +))) 662 662 777 +((( 663 663 **Example:** 779 +))) 664 664 781 +((( 665 665 (% style="color:#037691" %)**AF 03 01 06 0A 05 00 04 00 01 00**(%%): Same as AT+COMMAND3=0A 05 00 04 00 01,1 783 +))) 666 666 785 +((( 667 667 (% style="color:#037691" %)**AF 03 02 06**(% style="color:orange" %)** 10 **(% style="color:red" %)**01 **(% style="color:green" %)**05 06 09 0A**(% style="color:#037691" %)** 00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**16**(%%),(% style="color:red" %)**1**(%%),(% style="color:green" %)**5+6+9+10** 787 +))) 668 668 789 +((( 669 669 (% style="color:#037691" %)**AF 03 02 06 **(% style="color:orange" %)**0B**(% style="color:red" %)** 02 **(% style="color:green" %)**05 07 08 0A **(% style="color:#037691" %)**00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**11**(%%),(% style="color:red" %)**2**(%%),(% style="color:green" %)**5~~7+8~~10** 791 +))) 670 670 671 671 672 672 795 + 673 673 ==== **Fast command to handle MODBUS device** ==== 674 674 798 +((( 675 675 AT+MBFUN is valid since v1.3 firmware version. The command is for fast configure to read Modbus devices. It is only valid for the devices which follow the [[MODBUS-RTU protocol>>url:https://www.modbustools.com/modbus.html]]. 800 +))) 676 676 802 +((( 677 677 This command is valid since v1.3 firmware version 804 +))) 678 678 806 +((( 679 679 AT+MBFUN can auto read the Modbus function code: 01, 02, 03 or 04. AT+MBFUN has lower priority vs AT+DATACUT command. If AT+DATACUT command is configured, AT+MBFUN will be ignore. 808 +))) 680 680 810 +((( 811 + 812 +))) 681 681 814 +((( 682 682 **Example:** 816 +))) 683 683 684 -* AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). So RS485-LN. 685 -* AT+COMMAND1= 01 03 00 10 00 08,1 ~-~-> read slave address 01 , function code 03, start address 00 01, quantity of registers 00 08. 686 -* AT+COMMAND2= 01 02 00 40 00 10,1 ~-~-> read slave address 01 , function code 02, start address 00 40, quantity of inputs 00 10. 818 +* ((( 819 +AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). So RS485-LN. 820 +))) 821 +* ((( 822 +AT+COMMAND1= 01 03 00 10 00 08,1 ~-~-> read slave address 01 , function code 03, start address 00 01, quantity of registers 00 08. 823 +))) 824 +* ((( 825 +AT+COMMAND2= 01 02 00 40 00 10,1 ~-~-> read slave address 01 , function code 02, start address 00 40, quantity of inputs 00 10. 826 +))) 687 687 688 688 [[image:image-20220602165351-6.png]] 689 689 ... ... @@ -691,183 +691,354 @@ 691 691 692 692 693 693 834 + 694 694 ==== **RS485 command timeout** ==== 695 695 837 +((( 696 696 Some Modbus device has slow action to send replies. This command is used to configure the RS485-LN to use longer time to wait for their action. 839 +))) 697 697 841 +((( 698 698 Default value: 0, range: 0 ~~ 65 seconds 843 +))) 699 699 700 -* **AT Command:** 845 +* ((( 846 +**AT Command:** 847 +))) 701 701 702 702 (% class="box infomessage" %) 703 703 ((( 851 +((( 704 704 **AT+CMDDLaa=hex(bb cc)*1000** 705 705 ))) 854 +))) 706 706 856 +((( 707 707 **Example:** 858 +))) 708 708 860 +((( 709 709 **AT+CMDDL1=1000** to send the open time to 1000ms 862 +))) 710 710 864 +((( 865 + 866 +))) 711 711 712 -* **Downlink Payload:** 868 +* ((( 869 +**Downlink Payload:** 870 +))) 713 713 872 +((( 714 714 **0x AA aa bb cc** 874 +))) 715 715 876 +((( 716 716 Same as: AT+CMDDLaa=hex(bb cc)*1000 878 +))) 717 717 880 +((( 718 718 **Example:** 882 +))) 719 719 884 +((( 720 720 0xAA 01 00 01 ~-~-> Same as **AT+CMDDL1=1000 ms** 886 +))) 721 721 722 722 723 723 890 + 724 724 ==== **Uplink payload mode** ==== 725 725 893 +((( 726 726 Define to use one uplink or multiple uplinks for the sampling. 895 +))) 727 727 897 +((( 728 728 The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 899 +))) 729 729 730 -* **AT Command:** 901 +* ((( 902 +**AT Command:** 903 +))) 731 731 732 732 (% class="box infomessage" %) 733 733 ((( 907 +((( 734 734 **AT+DATAUP=0** 735 735 ))) 910 +))) 736 736 737 737 (% class="box infomessage" %) 738 738 ((( 914 +((( 739 739 **AT+DATAUP=1** 740 740 ))) 917 +))) 741 741 919 +((( 920 + 921 +))) 742 742 743 -* **Downlink Payload:** 923 +* ((( 924 +**Downlink Payload:** 925 +))) 744 744 927 +((( 745 745 **0xAD 00** **~-~->** Same as AT+DATAUP=0 929 +))) 746 746 931 +((( 747 747 **0xAD 01** **~-~->** Same as AT+DATAUP=1 933 +))) 748 748 749 749 750 750 937 + 751 751 ==== **Manually trigger an Uplink** ==== 752 752 940 +((( 753 753 Ask device to send an uplink immediately. 942 +))) 754 754 755 -* **AT Command:** 944 +* ((( 945 +**AT Command:** 946 +))) 756 756 948 +((( 757 757 No AT Command for this, user can press the [[ACT button>>||anchor="H3.7Buttons"]] for 1 second for the same. 950 +))) 758 758 952 +((( 953 + 954 +))) 759 759 760 -* **Downlink Payload:** 956 +* ((( 957 +**Downlink Payload:** 958 +))) 761 761 960 +((( 762 762 **0x08 FF**, RS485-LN will immediately send an uplink. 962 +))) 763 763 764 764 765 765 966 + 766 766 ==== **Clear RS485 Command** ==== 767 767 969 +((( 768 768 The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. 971 +))) 769 769 770 -* **AT Command:** 973 +* ((( 974 +**AT Command:** 975 +))) 771 771 977 +((( 772 772 **AT+CMDEAR=mm,nn** mm: start position of erase ,nn: stop position of erase 979 +))) 773 773 981 +((( 774 774 Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 983 +))) 775 775 985 +((( 776 776 Example screen shot after clear all RS485 commands. 987 +))) 777 777 989 +((( 990 + 991 +))) 778 778 993 +((( 779 779 The uplink screen shot is: 995 +))) 780 780 781 781 [[image:1654160691922-496.png]] 782 782 783 783 784 -* **Downlink Payload:** 1000 +* ((( 1001 +**Downlink Payload:** 1002 +))) 785 785 1004 +((( 786 786 **0x09 aa bb** same as AT+CMDEAR=aa,bb 1006 +))) 787 787 788 788 789 789 1010 + 790 790 ==== **Set Serial Communication Parameters** ==== 791 791 1013 +((( 792 792 Set the Rs485 serial communication parameters: 1015 +))) 793 793 794 -* **AT Command:** 1017 +* ((( 1018 +**AT Command:** 1019 +))) 795 795 1021 +((( 796 796 Set Baud Rate: 1023 +))) 797 797 798 798 (% class="box infomessage" %) 799 799 ((( 1027 +((( 800 800 **AT+BAUDR=9600** ~/~/ Options: (1200,2400,4800,14400,19200,115200) 801 801 ))) 1030 +))) 802 802 1032 +((( 803 803 Set UART Parity 1034 +))) 804 804 805 805 (% class="box infomessage" %) 806 806 ((( 1038 +((( 807 807 **AT+PARITY=0** ~/~/ Option: 0: no parity, 1: odd parity, 2: even parity 808 808 ))) 1041 +))) 809 809 1043 +((( 810 810 Set STOPBIT 1045 +))) 811 811 812 812 (% class="box infomessage" %) 813 813 ((( 1049 +((( 814 814 **AT+STOPBIT=0** ~/~/ Option: 0 for 1bit; 1 for 1.5 bit ; 2 for 2 bits 815 815 ))) 1052 +))) 816 816 1054 +((( 1055 + 1056 +))) 817 817 818 -* **Downlink Payload:** 1058 +* ((( 1059 +**Downlink Payload:** 1060 +))) 819 819 1062 +((( 820 820 **A7 01 aa bb**: Same AT+BAUDR=hex(aa bb)*100 1064 +))) 821 821 1066 +((( 822 822 **Example:** 1068 +))) 823 823 824 -* A7 01 00 60 same as AT+BAUDR=9600 825 -* A7 01 04 80 same as AT+BAUDR=115200 1070 +* ((( 1071 +A7 01 00 60 same as AT+BAUDR=9600 1072 +))) 1073 +* ((( 1074 +A7 01 04 80 same as AT+BAUDR=115200 1075 +))) 826 826 1077 +((( 827 827 A7 02 aa: Same as AT+PARITY=aa (aa value: 00 , 01 or 02) 1079 +))) 828 828 1081 +((( 829 829 A7 03 aa: Same as AT+STOPBIT=aa (aa value: 00 , 01 or 02) 1083 +))) 830 830 831 831 1086 + 1087 + 832 832 == 3.6 Listening mode for RS485 network == 833 833 1090 +((( 834 834 This feature support since firmware v1.4 1092 +))) 835 835 1094 +((( 836 836 RS485-LN supports listening mode, it can listen the RS485 network packets and send them via LoRaWAN uplink. Below is the structure. The blue arrow shows the RS485 network packets to RS485-LN. 1096 +))) 837 837 838 838 [[image:image-20220602171200-8.png||height="567" width="1007"]] 839 839 1100 +((( 840 840 To enable the listening mode, use can run the command AT+RXMODE. 1102 +))) 841 841 1104 +((( 1105 + 1106 +))) 842 842 843 -(% border="1" style="background-color:#ffffcc; width:500px" %) 844 -|=(% style="width: 161px;" %)**Command example:**|=(% style="width: 337px;" %)**Function** 845 -|(% style="width:161px" %)AT+RXMODE=1,10 |(% style="width:337px" %)Enable listening mode 1, if RS485-LN has received more than 10 RS485 commands from the network. RS485-LN will send these commands via LoRaWAN uplinks. 846 -|(% style="width:161px" %)AT+RXMODE=2,500|(% style="width:337px" %)Enable listening mode 2, RS485-LN will capture and send a 500ms content once from the first detect of character. Max value is 65535 ms 847 -|(% style="width:161px" %)AT+RXMODE=0,0|(% style="width:337px" %)Disable listening mode. This is the default settings. 848 -|(% style="width:161px" %) |(% style="width:337px" %)A6 aa bb cc same as AT+RXMODE=aa,(bb<<8 ~| cc) 1108 +(% border="1" cellspacing="10" style="background-color:#ffffcc; width:500px" %) 1109 +|=(% style="width: 161px;" %)((( 1110 +**Command example:** 1111 +)))|=(% style="width: 337px;" %)((( 1112 +**Function** 1113 +))) 1114 +|(% style="width:161px" %)((( 1115 +AT+RXMODE=1,10 1116 +)))|(% style="width:337px" %)((( 1117 +Enable listening mode 1, if RS485-LN has received more than 10 RS485 commands from the network. RS485-LN will send these commands via LoRaWAN uplinks. 1118 +))) 1119 +|(% style="width:161px" %)((( 1120 +AT+RXMODE=2,500 1121 +)))|(% style="width:337px" %)((( 1122 +Enable listening mode 2, RS485-LN will capture and send a 500ms content once from the first detect of character. Max value is 65535 ms 1123 +))) 1124 +|(% style="width:161px" %)((( 1125 +AT+RXMODE=0,0 1126 +)))|(% style="width:337px" %)((( 1127 +Disable listening mode. This is the default settings. 1128 +))) 1129 +|(% style="width:161px" %)((( 1130 + 1131 +)))|(% style="width:337px" %)((( 1132 +A6 aa bb cc same as AT+RXMODE=aa,(bb<<8 | cc) 1133 +))) 849 849 1135 +((( 850 850 **Downlink Command:** 1137 +))) 851 851 1139 +((( 852 852 **0xA6 aa bb cc ** same as AT+RXMODE=aa,(bb<<8 | cc) 1141 +))) 853 853 1143 +((( 1144 + 1145 +))) 854 854 1147 +((( 855 855 **Example**: 1149 +))) 856 856 1151 +((( 857 857 The RS485-LN is set to AT+RXMODE=2,1000 1153 +))) 858 858 1155 +((( 859 859 There is a two Modbus commands in the RS485 network as below: 1157 +))) 860 860 1159 +((( 861 861 The Modbus master send a command: (% style="background-color:#ffc000" %)01 03 00 00 00 02 c4 0b 1161 +))) 862 862 1163 +((( 863 863 And Modbus slave reply with: (% style="background-color:green" %)01 03 04 00 00 00 00 fa 33 1165 +))) 864 864 1167 +((( 865 865 RS485-LN will capture both and send the uplink: (% style="background-color:#ffc000" %)01 03 00 00 00 02 c4 0b (% style="background-color:green" %)01 03 04 00 00 00 00 fa 33 1169 +))) 866 866 1171 +((( 867 867 [[image:image-20220602171200-9.png]] 1173 +))) 868 868 1175 +((( 1176 + 1177 +))) 869 869 1179 +((( 870 870 (% style="color:red" %)Notice: Listening mode can work with the default polling mode of RS485-LN. When RS485-LN is in to send the RS485 commands (from AT+COMMANDx), the listening mode will be interrupt for a while. 1181 +))) 871 871 872 872 873 873 == 3.7 Buttons ==