Recommended Posts

Hi Everyone


Can someone please help me? This might be a silly question but I am very new to DaqFactory and I've only done some very basic things.


Register in my header file "Modbus.h":




#define h_STATUS0                                0
        #define S_ReadyToStart             0x0001
        #define S_PreStart                      0x0002
        #define S_Run                             0x0004
        #define S_Cooling                       0x0080
        #define S_Short                          0x0010
        #define S_EFL                            0x0020
        #define S_Stop                           0x0040
        #define S_OverVoltage              0x0080
        #define S_UnderVoltage            0x0100
        #define S_VoltageUnb               0x0200
        #define S_OverCurrent              0x0400
        #define S_UnderCurrent            0x0800
        #define S_CurrentUnb               0x1000
        #define S_EarthFault                 0x2000
        #define S_PhaseLoss                0x4000
        #define S_PhaseRotation          0x8000
//End of Code
So I have a holding register (h_STATUS0), that contains bits, and each bit represents a "status", which on my output is an LED.
If I set up a channel in DaqFactory "wh_STATUS0, channel=0", and I want to use the channel but set only "S_ReadyToStart" (0x0001) to "1", how do I do this?
I hope this question makes sense and that someone can help me:)
Thanks in advance!


Share this post

Link to post
Share on other sites

Set the channel with Timing so you are reading the current status value.  Then, if you wanted to, say, enable S_PhaseLoss you'd do:


wh_status0 = setBit(wh_status0[0], 14)


or to turn off CurrentUnb:


wh_status0 = clearBit(wh_status0[0], 12)


Note that the 14 and 12 are bit numbers, numbered from 0.  So in your list, readyToStart is bit 0, prestart is bit 1, etc from 0 to 15 right down the list (you have a type of cooling, it should be 0x0008)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this