5d

来自Jack's Lab
(版本间的差异)
跳转到: 导航, 搜索
(Uploaded XML Data)
(TODO)
第155行: 第155行:
  
 
<br><br>
 
<br><br>
 +
 +
== ZLAN 5102 Config ==
 +
 +
<table width="100%" border="1" bgcolor="#EEEEEE" bordercolor="#BBBBBB" align="center"><tr><td colspan="6" class=c>NETWORK</td></tr><tr><td>Name</td><td><input name="dvn" value="ZLDEV0001" maxlength="9"></td><td width="12%">IP</td><td width="20%"><input name="lca" value="122.5.18.173"></td><td width="12%">Port</td><td><input name="lcp" value="4196"></td></tr><tr><td>Mode</td><td><select name="wkm"><option value="0" >TCP Server</option><option value="1" selected>TCP Client</option><option value="2" >UDP</option><option value="3" >UDP Group</option></select></td><td>Mask</td><td><input name="lcm" value="255.255.255.0"></td><td>Gateway</td><td><input name="lcg" value="0.0.0.0"></td></tr><tr><td>Dest IP</td><td><input name="dsa" value="122.5.18.172" maxlength="29"></td><td>Dest Port</td><td><input name="dsp" value="9011"></td><td>Http Port</td><td><input name="wbp" value="80"></td></tr><tr><td colspan="6" class=c>SERIAL</td></tr><tr><td>Baud rate</td><td><select name="bdr"><option value="0" >1200</option><option value="1" >2400</option><option value="2" >4800</option><option value="3" >7200</option><option value="4" >9600</option><option value="5" >14400</option><option value="6" selected>19200</option><option value="7" >28800</option><option value="8" >38400</option><option value="9" >57600</option><option value="A" >76800</option><option value="B" >115200</option> <option value="C" >230400</option><option value="D" >460800</option> </select></td><td>Data bits</td><td><select name="dtb"><option value="0" selected>8</option><option value="1" >7</option><option value="2" >6</option><option value="3" >5</option></select></td><td>Parity</td><td><select name="prt"><option value="0" selected>None</option><option value="1" >Odd</option><option value="2" >Even</option><option value="3" >Mark</option><option value="4" >Space</option></select></td></tr><tr><td colspan="6" class=c>KEY</td></tr><tr><td>New Key</td><td><input name="nwk" type=Password maxlength="9" value="123456"></td><td>Retype</td><td><input name="rtp" type=Password maxlength="9" value="123456"></td></tr><tr><td colspan="6" align="center"><input name="post" type="submit" value="Submit"></td></tr></table>
  
 
== Uploaded XML Data ==
 
== Uploaded XML Data ==

2017年1月5日 (四) 23:08的版本

目录

1 First Tuning

1.1 Change Net Type

net_type 网络类型:

  • 0 - GPRS
  • 1 - RS485
  • 2 - Ethernet (NOT SUPPORT)
  • 3 - Zigbee (NOT SUPPORT)
typedef enum em_net_mod {
    em_net_gprs = 0,
    em_net_rs485,
    em_net_eth,
    em_net_zigbee
} net_mod;


[root@mcuzone root]#cd /app
[root@mcuzone /app]#sqlite3 ./gatherdb.db 
SQLite version 3.10.0 2016-01-06 11:01:07
Enter ".help" for usage hints.
sqlite> select * from t_base_define;
sqlite> .head on                                                    
sqlite> .mode column
sqlite> select * from t_base_define;
f_id        f_config_name   f_config_value
----------  --------------  --------------
1           primary_server  122.5.18.174  
2           primary_dns     219.146.0.130 
3           primary_port    9011          
4           second_server   219.146.0.130 
5           second_dns      219.146.0.130 
6           second_port     9027          
7           gateway_id      37060001      
8           net_type        0             
9           md5_key         863CA654      
10          aes_key         d41d8cd98f00b2
11          collect_mode    0             
12          collect_cycle   15             
13          report_mode     0             
14          beat_cycle      2             
15          svr_num         0001          
16          appmd5          28a011de19210e

sqlite> update t_base_define set f_config_value='1' where f_config_name='net_type';
sqlite> 
sqlite> select * from t_base_define;
f_id        f_config_name   f_config_value
----------  --------------  --------------
1           primary_server  122.5.18.174  
2           primary_dns     219.146.0.130 
3           primary_port    9011          
4           second_server   219.146.0.130 
5           second_dns      219.146.0.130 
6           second_port     9027          
7           gateway_id      37060001      
8           net_type        15             
9           md5_key         863CA654      
10          aes_key         d41d8cd98f00b2
11          collect_mode    0             
12          collect_cycle   1             
13          report_mode     0             
14          beat_cycle      2             
15          svr_num         0001          
16          appmd5          28a011de19210e



1.2 Setup RTC

[root@mcuzone root]#date -s 2017.01.05-18:38:48
Thu Jan  5 18:38:48 CST 2017
[root@mcuzone root]#hwclock -w # write RTC to store the time
[root@mcuzone root]#hwclock -r
Thu Jan  5 18:38:56 2017  0.000000 seconds



2 Update APP

Your PC:

$ sudo apt-get install nfs-kernel-server
 
Config the nfs directory:
 
$ sudo mkdir -p /tftpboot/rootfs
$ cat /etc/exports
/work/armv9    *(async,rw,insecure,insecure_locks,no_root_squash)
 
$ sudo /etc/init.d/nfs-kernel-server restart

In collector:

[root@mcuzone /app]#mount -o port=2049,nolock,proto=tcp -t nfs 192.168.1.72:/wor
k/5d/src ./x
[root@mcuzone /app]#ls x
bin       db        include   nfsroot   src       ubi.in
chmod.sh  dbtest.c  lib       sh        src-x
[root@mcuzone /app]#ls x/src-x
Makefile             main.c               sysinit.c
bsp.c                meter_table.c        uart_gprs.c
commap.c             notes.md             uart_mbus_down485.c
db.c                 queue.c              uart_set.c
elect.c              read_heatmeter.c     water.c
gather_V1            readallmeters.c      xml.c
gprs.c               rs485up.c
include              sysfuctions.c

Copy the gather_V1 into collector:

[root@mcuzone /app]#cp x/src-x/gather_V1 .
[root@mcuzone /app]#ls
1runapp.sh   buff2.xml    gather_V0    gatherdb.db  rcS          x
buff1.xml    buff3.xml    gather_V1    log.txt      runapp.sh



3 TODO

"使用485组网,是不允许信息主动上推的,必须等待上位要数, 如果多个集中器都往485总线上推数据, 会引发冲突"

void ReadAllMeters(void)
{
    ......
    ......
    if (RPT_ACTIVE == atoi(sysconfig.f_config_value)) { //如果是主动上报, 则发送上报消息
        lnetMod = g_sysConfigHex.netType;

        if (lnetMod != em_net_rs485) {
            //使用485组网,是不允许信息主动上推的,必须等待上位要数, 如果多个集中器都往485总线上推数据, 会引发冲突
            ......
            ......
        }
    }
    ......
    ......
}



4 ZLAN 5102 Config

NETWORK
Name<input name="dvn" value="ZLDEV0001" maxlength="9">IP<input name="lca" value="122.5.18.173">Port<input name="lcp" value="4196">
Mode<select name="wkm"><option value="0" >TCP Server</option><option value="1" selected>TCP Client</option><option value="2" >UDP</option><option value="3" >UDP Group</option></select>Mask<input name="lcm" value="255.255.255.0">Gateway<input name="lcg" value="0.0.0.0">
Dest IP<input name="dsa" value="122.5.18.172" maxlength="29">Dest Port<input name="dsp" value="9011">Http Port<input name="wbp" value="80">
SERIAL
Baud rate<select name="bdr"><option value="0" >1200</option><option value="1" >2400</option><option value="2" >4800</option><option value="3" >7200</option><option value="4" >9600</option><option value="5" >14400</option><option value="6" selected>19200</option><option value="7" >28800</option><option value="8" >38400</option><option value="9" >57600</option><option value="A" >76800</option><option value="B" >115200</option> <option value="C" >230400</option><option value="D" >460800</option> </select>Data bits<select name="dtb"><option value="0" selected>8</option><option value="1" >7</option><option value="2" >6</option><option value="3" >5</option></select>Parity<select name="prt"><option value="0" selected>None</option><option value="1" >Odd</option><option value="2" >Even</option><option value="3" >Mark</option><option value="4" >Space</option></select>
KEY
New Key<input name="nwk" type=Password maxlength="9" value="123456">Retype<input name="rtp" type=Password maxlength="9" value="123456">
<input name="post" type="submit" value="Submit">

5 Uploaded XML Data

From collector:

<?xml version="1.0" encoding="utf-8"?>
<root>
<common>
<sadd>37060001</sadd>
<oadd></oadd>
<func_type>6</func_type>
<oper_type>3</oper_type>
</common>

<trans>
<total_meter_num>1</total_meter_num>
<frame_idx>1</frame_idx>
<meter_num>1</meter_num
<time_node>2017-01-05 22:38:00</time_node>
</trans>

<row id="1">
<f_id>2375</f_id>
<f_meter_type>40</f_meter_type>
<f_device_id>3</f_device_id>
<f_meter_address>00000000000087</f_meter_address>
<f_timestamp>2017-01-05 22:38:43</f_timestamp>
<f_time>2017-01-05 22:38:00</f_time>
<f_pact_tot_elec>null</f_pact_tot_elec>
<f_nact_tot_elec>null</f_nact_tot_elec>
<f_preact_tot_elec>null</f_preact_tot_elec>
<f_nreact_tot_elec>null</f_nreact_tot_elec>
<f_act_tot_elec>null</f_act_tot_elec>
<f_react_tot_elec>null</f_react_tot_elec>
</row>
</root>


6 NOTES

6.1 Meter Type

  • HEATMETER 0x20
  • WATERMETER 0x10
  • ELECTMETER 0x40
  • GASMETER 0x30
  • SENSORDEV 0x50 // RTU module of sensors


6.2 ElectMeter Protocol

/*
 *  Format:串口设置, 读取电表数据标识符, 前导符个数, 通讯类型 (0:MBUS  1:485), 通讯协议类型(0:MODBUS  1:645)
*/
uint16 gELEC_METER_Table[ELECMETER_PROTO_SUM][5] = {
  {ELEC_COMSET_1, 0x0000, 0, ELEC_RS485, ELEC_PROTO_MODBUS},  //力创电表               -----idx: -0-
  {ELEC_COMSET_1, 0x0000, 0, ELEC_RS485, ELEC_PROTO_MODBUS},  //acrel DDSD1352单相电表 -----idx: -1-
  {ELEC_COMSET_1, 0x0000, 0, ELEC_RS485, ELEC_PROTO_MODBUS},  //acrel DTSF1352三相电表 -----idx: -2-
  {ELEC_COMSET_1, 0x0000, 0, ELEC_RS485, ELEC_PROTO_MODBUS},  //acrel PZ80-E4C三相电表 -----idx: -3-
};


6.3 Meter Channel

Only support:

  • RS485_DOWN_CHANNEL 7


6.4 Meter Config in Database

sqlite> .schema t_meter_info
CREATE TABLE t_meter_info
(
    f_id    integer primary key autoincrement,
    f_meter_type    varchar(2),
    f_device_id varchar(4),
    f_meter_address varchar(14),
    f_meter_channel varchar(2),
    f_meter_proto_type  varchar(2),
    f_install_pos   varchar(50)
);
sqlite> select * from t_meter_info;
18|40|3|00000000000001|7|0|3#地下室
19|20|4|11110020160429|1|0|3#under

sqlite> .dump t_meter_info
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;

INSERT INTO "t_meter_info" VALUES(18,'40','3','00000000000001','7','0','3#地下室');
INSERT INTO "t_meter_info" VALUES(19,'20','4','11110020160429','1','0','3#under');
COMMIT;



















个人工具
名字空间

变换
操作
导航
工具箱