User Tools

Site Tools


public:products:cv-100m

ACR-CV - Universal M-Bus converter

ACR-CV-101L-M-D
ACR-CV-101L-M-D2

  • The universal converter is used for application where you need to send data from M-Bus over the LoRa network or NB-IoT
  • We offer battery operated units, as well as external power operated units.
  • Each universal converter has implemented LUA scripts and can be configured via configuration software to fit your case
  • Typical application is remote electrometers and calorimeters reading

Technical parameters

Power supply options
External power supply Battery operated unit
AC power supply D-cell battery
Voltage: 85- 305 VAC Battery type: Lithium 3.6 VDC
Frequency: 47-63 Hz Battery capacity: 17 000 mAh
Maximum power consumption: 4 W Recharchable: No
DC power supply
Voltage: 9 - 36VDC
M-Bus Interface
Device type: Master
Communication speed: 300 - 9600Bd
Maximum connected devices: 5 UL (Unit Loads. 1UL = 1.5 mA)
M-Bus protocol: EN 137 57-3
LPWAN communication
LoRaWAN NB- IoT
LoRaWAN specification: 1.0.1 Bands: B1; B3; B5; B8; B20; B28
Registration method: ABP NB module: SIM 7020E
Class: A Transparent AT commands Yes
Frequency: 868 MHz (ISM) Antenna: External; connected via SMA connector
TX Power: 12,7dBm TX Power: 23dBm
Antenna: External; connected via SMA connector Configuration: Over the cable via GUI
General information
IP coverage: IP65
Dimensions: 145 x 90 x 55 mm
Operational temperature: -30 °C to +60 °C
Weight: 250 g
HS code: 85269200
Ordering code
Code Description
ACR-CV-101N-M-D2 M-Bus to NB-IoT converter with 2 x D battery
ACR-CV-101L-M-D2 M-Bus to LoRa converter with 2 x D battery
ACR-CV-101N-M-D M-Bus to NB-IoT converter with D battery
ACR-CV-101L-M-D M-Bus to LoRa converter with D battery
ACR-CV-101L-M-EAC M-Bus to LoRa converter with AC external power supply
ACR-CV-101N-M-EAC M-Bus to NB-IoT converter with AC external power supply
ACR-CV-101L-M-EDC M-Bus to LoRa converter with DC external power supply
ACR-CV-101N-M-EDC M-Bus to NB-IoT converter with DC external power supply


Content of packaging

1x ACR-CV with battery*
* Only for battery operated units


Before installation

1. Loosen the screws and open the lid
2. Connect the cables from the M-Bus to the terminal board
3. Connect the battery via connector
4. The device initializes, flashes blue3 times
5. Put the lid back in the box and pull it off screws

LED signalization

  • 3x blue- start up
  • 1x short blue - periody wake-up
  • 1x long blue- enter configuration mode after long press of user button

Accessories

  • ACR-CONFIG - configuration cable necessary to configure the converter.
  • ACR-CONFIG-5KV - optically isolated configuration cable necessary to configure the converter.
  • 2J-2JW031-868-C675 - LoRa antenna 3dBi
  • 2J-2JW1024 - NB-IoT antenna, max gain 4.6dBi

Payload

Default LUA script

-----------------------
--- CONFIGURATION -----
-----------------------
----- NB-IoT ----------
APN = "nb.m2mc"
PLMNID = "23003"
protocol = "UDP"	-- UDP or TCP
ip = "192.168.0.20"
port = 4242
receiveTimeout = 500 -- the maximum execution time in milliseconds
----- M-BUS -----------
baudrate = 2400		-- baudrate: up to 921600 baud
parity = 2			-- communication parity: 0 for none, 1 for odd and 2 for even parity
stopBits = 1		-- number of stop bits: 1 or 2
dataBits = 8		-- number of data bits: 7 or 8
------ Timing ---------
-- device wakeup interval
periodHours = 2
periodMinutes = 30
-----------------------
-----------------------
-- CONFIGURATION END --
-----------------------
 
function onWake ()
 
    -- set link parameters - 2400 baud, 8E1
    api.mbusSetup(baudrate,parity,stopBits,dataBits)
    api.mbusState(1)
    api.delayms(2000)
 
 
    -- CREATE MBUS QUERY --
    -- UD2
    --b=pack.pack('<b5', 0x10, 0x5B, 0xFE, 0x59, 0x16)
    b=pack.pack('<b5', 0x10, 0x7B, 0xFE, (0x7B+0xFE)%256, 0x16)
    status,c,a,ci,ans = api.mbusTransaction(b,3000,1)
    api.mbusState(0)
 
    print("From MBus Calorimeter: ")
 
    api.dumpArray(ans)
 
    if #ans < 1 then
        buf = "NO DATA RECEIVED"
    else
        buf = ans
    end
 
    print("To NBIOT: ")
 
    api.dumpArray(buf)
 
    print("Sending to NB-IoT")
    api.nbSend(ip, port, buf, receiveTimeout, protocol)
 
    print("Done sending")
    print("Sleep now, wake in " .. tostring(periodHours) .. "hrs:" .. tostring(periodMinutes) .. "mins.....")
 
    api.wakeUpIn(0,periodHours,periodMinutes,0)
end
 
function onStartup()
    print("Starting up NB-IoT default script with APN settings")
 
    result = api.nbAT("AT*MCGDEFCONT=\"IP\",\"" .. APN .."\"", 5000, 1)
    print("APN result: " .. result)
 
    result = api.nbAT("AT+COPS=1,2,\"" .. PLMNID .."\"", 5000, 1)
    print("PLMNID result: " .. result)
 
 
end

Default LUA script answer

NBIOT: module setup done successfully!
SYS: --- New request ---
SYS: Battery Voltage: 3622 mV
LUA: starting lua script version 1
LUA: Starting onWake() script
MBUS: sending command with size of 5 bytes
~>From MBus Calorimeter: 
 
	00 : 84 63 00 80 2D 2C 35 04 16 00 00 00 04 0E 5A D5 
	10 : 03 00 04 FF 07 39 97 5B 00 04 FF 08 6C F5 52 00 
	20 : 04 13 21 3A 02 00 84 40 14 90 15 05 00 84 80 40 
	30 : 14 98 08 00 00 04 22 EB 60 00 00 34 22 F0 00 00 
	40 : 00 02 59 E7 08 02 5D C3 08 02 61 24 00 04 2D 00 
	50 : 00 00 00 14 2D 0D 00 00 00 04 3B 00 00 00 00 14 
	60 : 3B E2 05 00 00 04 FF 22 00 00 00 00 04 6D 16 24 
	70 : 84 29 44 0E 71 10 03 00 44 FF 07 A3 F7 53 00 44 
	80 : FF 08 D2 2D 4D 00 44 13 4D D7 84 00 C4 40 14 90 
	90 : 15 05 00 C4 80 40 14 98 08 00 00 54 2D 00 00 00 
	A0 : 00 54 3B 16 00 00 00 42 6C 81 21 02 FF 1A 01 1B 
	B0 : 0C 78 84 63 00 80 04 FF 16 E5 84 1E 00 04 FF 17 
	C0 : C1 D5 B4 00 
~>To NBIOT: 
 
	00 : 84 63 00 80 2D 2C 35 04 16 00 00 00 04 0E 5A D5 
	10 : 03 00 04 FF 07 39 97 5B 00 04 FF 08 6C F5 52 00 
	20 : 04 13 21 3A 02 00 84 40 14 90 15 05 00 84 80 40 
	30 : 14 98 08 00 00 04 22 EB 60 00 00 34 22 F0 00 00 
	40 : 00 02 59 E7 08 02 5D C3 08 02 61 24 00 04 2D 00 
	50 : 00 00 00 14 2D 0D 00 00 00 04 3B 00 00 00 00 14 
	60 : 3B E2 05 00 00 04 FF 22 00 00 00 00 04 6D 16 24 
	70 : 84 29 44 0E 71 10 03 00 44 FF 07 A3 F7 53 00 44 
	80 : FF 08 D2 2D 4D 00 44 13 4D D7 84 00 C4 40 14 90 
	90 : 15 05 00 C4 80 40 14 98 08 00 00 54 2D 00 00 00 
	A0 : 00 54 3B 16 00 00 00 42 6C 81 21 02 FF 1A 01 1B 
	B0 : 0C 78 84 63 00 80 04 FF 16 E5 84 1E 00 04 FF 17 
	C0 : C1 D5 B4 00 
~>Sending to NB-IoT
NBIOT: Signal level 24.
NBIOT: No return data
~>Done sending
~>Sleep now, wake in 0hrs:3mins.....

M-Bus LUA configuration

Converter configuration

The IoT Converter can be configured via a PC application or remotely via a LoRaWAN or NB-IoT network.
Inside the IoT converter is a button that allows you to wake up the IoT converter immediately (asynchronous to the internal clock).

Connecting to the device's configuration

1. Unscrew the 4 screws holding the lid on the device and remove the lid.
2. Unplug the battery or power adapter.
3. Connect the ACR-CONFIG cable into the PC and also into the converter.
4. Launch configuration GUI.
5. Select the port on which the device is connected (for example COM6).
6. Click on “Connect”.
7. Power on the device - either by plugging in the battery or power adapter.
8. Start configuration.

Connecting to the device's communication display

1. Unscrew the 4 screws holding the lid on the device and remove the lid.
2. Plug in the battery or power adapter.
3. Connect the ACR-CONFIG cable into the PC.
4. Launch configuration GUI.
5. Select the port on which the device is connected (for example COM6).
6. Click on “Connect”.

NOTE: To get out of the device's communication display, push the button within the converter and hold for about 6 seconds, until the device switches to configuration mode.


Configuration SW

2019.12

2020.06

Configuration cable

Optically isolated converter
  • Good for externally power supplied units. It can save you from overvoltaging your PC in case of faulty cable connection.
  • Can be supplied by ACRIOS Systems
  • 3.5mm jack connector

LUA script interface

In addition to configuration via a PC application, a LUA scripting interface is implemented in the IoT converter.
The LUA scripting interface allows you to implement your own logic (data preprocessing, etc.) within the converter.
Payload can be also modified by using LUA script.
Details regarding LUA scripts with examples can be found here: https://wiki.acrios.com/doku.php?id=public:general:lua_api


M-Bus LUA commands

The LUA scripting interface enables users to implement its own logic inside the IoT converter. Detailed information about LUA scripting interface can be found in separate document here.

M-Bus transaction

status, c, a, ci, answer = api.mbusTransaction( msg, timeout, retry=1) This function transmits msg and waits timeout milliseconds for the answer. The transmission is retried retry times. The status contains information about communication status and c, a, ci and answer contains MBus answer data. Turn on MBus using mbusState first. >

Arguments

  • msg (string) - Message to send to MBus
  • timeout (integer, optional) - The maximum time in milliseconds to wait for MBus device answer
  • retry (integer, optional) - Optional number of retransmissions, defaults to 1 >

Returns

  • status (integer) - Number of bytes received, zero on failure
  • c (integer) - MBus c frame field
  • a (integer) - MBus a frame field
  • ci (integer) - MBus ci frame field
  • answer (string) - MBus frame payload received from the bus

Example

--sends MBus frame [0x10, 0x50, 0x30, 0x16], waits 5s for answer twice 
msg = pack.pack('<b4', 0x10, 0x50, 0x30, 0x16) 
status,c,a,ci,ans = api.mbusTransaction(msg, 5000, 2)

M-Bus Setup

api.mbusSetup( baudrate, parity, stopBits, dataBits) This function configures the MBus communication interface. By default, the configuration from GUI is used, but this can be overriden using this API. Turn on MBus using mbusState after setting up MBus parameters using this function. >

Arguments

  • baudrate (integer, optional) - Baudrate to use for communication (up to 921600 baud)
  • parity (integer, optional) - Parity, 0 for none, 1 for odd and 2 for even parity
  • stopBits (integer, optional) - Number of stop bits, 1 or 2 allowed
  • dataBits (integer, optional) - Number of data bits, 7 or 8 allowed

Example

--setup MBus interface to 9600 Baud, 8E2 
api.mbusSetup(9600, 2, 2, 8)

M-Bus State

api.mbusState( state)

This function turns on the MBus circuitry, must be used before mbusTransaction.

Arguments

  • state (integer) - New state of MBus circuitry: 0 for off, 1 for on (apprx 30s power-up)

Example

api.mbusState(1) --turn on MBus

Technical drawings

LoRa M-Bus converter with external power supply

ACR-CV-101L-M-EAC
ACR-CV-101L-M-EDC


NB-IoT M-Bus converter with external power supply

ACR-CV-101N-M-EAC
ACR-CV-101N-M-EDC


LoRa M-Bus converter with battery

ACR-CV-101L-M-D
ACR-CV-101L-M-D2


NB-IoT M-Bus converter with battery

ACR-CV-101N-M-D
ACR-CV-101N-M-D2


For orders, please contact Mr. Smetana at smetana(at)acrios.com, for further technical details, please contact Mr. Novak at novak(at)acrios.com

public/products/cv-100m.txt · Last modified: 2020/10/29 14:34 by Acrios Admin