Affected Version: All firmware BioStar 2 Devices with RS485 Master Mode, All versions of BioStar 2

 Frequency of occurrence: Occasionally (by SW version and FW version)

Available Patch file: BioStar 2.8.10, 2.8.11, 2.8.12, 2.8.13

Fixed Version: BioStar 2.8.14 (Release date: December 2021)


Issue Description

When the device to be used as the RS485 Master is connected to the BioStar 2 Software, and after selecting the setting through the Device Menu to set the device, save the setting, BioStar 2 is sending the wrong internal parameter value to the RS485 Master device.


This erroneously transmitted internal parameter is applied as the actual set value when the RS485 Master device restarts and the communication connection with the RS485 slave device is disconnected due to this effect. Also, there is a problem that the RS485 Master device cannot reconnect the RS485 Slave device.


Since the RS485 connection is disconnected, the door cannot be opened when the user authenticates in the RS485 Slave.


This can be solved by resetting the device settings from adding devices to set up doors.




[Image 1- Disconnected RS485 Slave Device]




Notice

It is important to prevent problems before it occurs.

In a project that controls a door or elevator button by operating RS485, please use the following patch file to apply.



<1> How To Prevent The RS485 Disconnection Issue

1) Stop all BioStar services (BioStar Setting app).

2) Move the patch file for the currently installed BioStar 2 Version to the BioStar 2 installation path.

Please make sure the version of BioStar 2 server running on the PC.


Patch file for 2.8.10/2.8.11/2.8.12/2.8.13: Click here


C:\Program Files\BioStar 2 (x64)

Change the file name to biostar-server.exe, the existing biostar-server file makes the file name to bak.


3) Execute the DB connection program, and them. copy the query in "BioStar 2 Patch - Release Note_ENG.txt" according to the DB Type, and then execute the query.


Maria DB: Heidi SQL or MySQL Workbench

MSSQL: SQL Management Studio


You can check if the table was created normally by executing the "Select * from T_DEVFORCECMD" query.


Maria DB Query

CREATE TABLE IF NOT EXISTS T_DEVFORCECMD
(
    DEVID INT NOT NULL,
    CMDTYPE INT NOT NULL COMMENT 'Command type ex : 0x012A 298 BS2_CMD_RS485_SET_SLAVE',
    RSLT Char(1) DEFAULT 'N' COMMENT 'Y - sent, N - not yet',
    createdAt DATETIME,
    updatedAt DATETIME,
    PRIMARY KEY (DEVID)
    );
ALTER TABLE T_DEVFORCECMD COMMENT = 'Send a command only once to the target device.';
INSERT IGNORE INTO T_DEVFORCECMD(DEVID,CMDTYPE,RSLT,createdAt,updatedAt) SELECT DEVID, 298,'N', NOW() AS createdAt, NOW() AS updatedAt  FROM t_dev WHERE RS4MD <> 'S';


MSSQL DB Query

IF (NOT EXISTS (SELECT *
                 FROM INFORMATION_SCHEMA.TABLES
                 WHERE TABLE_SCHEMA = 'dbo'
                 AND  TABLE_NAME = 'T_DEVFORCECMD'))
BEGIN
CREATE TABLE [T_DEVFORCECMD](
    [DEVID] Int NOT NULL,
    [CMDTYPE] Int NOT NULL,
    [RSLT] Char(1) NULL CHECK ([RSLT] IN ('Y', 'N')),
    [createdAt] DATETIME2 NULL,
    [updatedAt] DATETIME2 NULL,
    PRIMARY KEY ([DEVID]));

EXEC sp_addextendedproperty 'MS_Description', 'Command type ex : 0x012A 298 BS2_CMD_RS485_SET_SLAVE', 'USER', DBO, 'TABLE', T_DEVFORCECMD, 'COLUMN', CMDTYPE;
EXEC sp_addextendedproperty 'MS_Description', 'Y - sent, N - not yet', 'USER', DBO, 'TABLE', T_DEVFORCECMD, 'COLUMN', RSLT;
EXEC sp_addextendedproperty 'MS_Description', 'Send a command only once to the target device.', 'USER', DBO, 'TABLE', T_DEVFORCECMD
INSERT INTO [dbo].[T_DEVFORCECMD] SELECT DEVID,298,'N',GETDATE() AS createdAt,GETDATE() AS updatedAt FROM t_dev WHERE RS4MD <> 'S';
END



4) When all steps 1-3 have been completed, start all BioStar services.

5) In the DB connection program, use the query below to check.

SELECT b.DEVID, a.RSLT FROM T_DEVFORCECMD a, T_DEV b WHERE a.DEVID = b.PARENTDEVID AND b.DEL = 'N' AND a.RSLT = 'N'

If there are no searched results, then the process was successful.

- Depending on the situation, it is okay to remove the AND a.RSLT = 'N' item and check whether the RSLT column value is being changed to 'Y'.

- This table is used to give the Set rs485 Command signal only when the RSLT value is N when the device is connected to BioStar 2.

Since the Set rs485 Command signal is given to the Master device with Slave, it may take some time for the RSLT column value to change from 'N' -> 'Y' depending on the number of devices connected to BioStar2.




The above patch is a patch that prevents the issue, and cannot solve the problem situation. If the RS485 disconnection issue has already occurred, proceed with the procedure below.

<2> How To Solve the RS485 Disconnection Issue

1) Click the Device menu in the left menu list of BioStar 2.

2) Move the mouse cursor to the master device that has a disconnection issue with the slave and right-click.

3) Click "Search Slave Device" in the right-click menu.

4) When the "Search Slave Device" pop-up window is finished loading, click the Cancel button to close the pop-up window.

5) Check whether the slave is reconnected to the master device with a time difference.