Home AMX User Forum AMX Control Products

PLK-DMS glitches

Hi All,
I am working on an older system with PLK-DMS keypads. I have an NI-4000 master w/ latest duet firmware, and DMS Keypads with ver 5.0 firmware. I am using the DMS-IMSMod to interface the keypads. The keypads are wired home run to an ICSNet Hub, which is connected to the NI-4000, and each keypad has a terminator. Whenever I push a button on the keypads, I get 2 push events, but no release. I created a small test program to verifiy this action:
DEFINE_DEVICE

dvDMS = 6003:1:0

vdvDMS = 33001:1:0

DEFINE_VARIABLE
    
char VTEXT1[5][40] 

integer nPushCount=0
integer nReleaseCount=0

DEFINE_MODULE 'DMS-IMSMod' MDDMS1(vdvDMS,dvDMS,Test.kpd,VTEXT1)

DEFINE_EVENT

button_event[vdvDMS,200]
{
push:
    {
    nPushCount=nPushCount+1
    send_string 0,"'button 200 pushed'"
    send_string 0,"'nPushCount= ',itoa(nPushCount)"
    }
release:
    {
    nReleaseCount=nReleaseCount+1
    send_string 0,"'button 200 released'"
    send_string 0,"'nReleaseCount= ',itoa(nReleaseCount)"
    }
}

When I push a button, nPushCount increments, but nReleaseCount does not. Any ideas? I have also tried this with an NI-700 and a different DMS keypad, both with a terminator and without,but I got the same results.
Any help would be greatly appreciated!

Comments

  • Joe HebertJoe Hebert Posts: 2,159
    m_hodel wrote: »
    Whenever I push a button on the keypads, I get 2 push events, but no release.
    Are you physically pushing the buttons or are you doing a DO_PUSH()? I?ve seen DO_PUSH() generate double pushes before (which is one reason I avoid them at all costs unless I?m absolutely forced into it) but I don?t know about the release missing as I rarely use them.

    If you are physically pushing the buttons then I?m not sure what would cause the double push and no release. Since the PLK-DMS is pre duet I would try the test on a non duet master if you have one available and see if the problem persists. Maybe others have better ideas.

    As an aside:
    nPushCount++
    is a shortcut for:
    nPushCount=nPushCount+1

    And you can do:
    nPushCount--
    as a shortcut for:
    nPushCount=nPushCount-1
  • Thanks Joe,
    Yes, I am pushing the physical button. And, my mistake, I did not test on a NI-700 (no ICS!) but on an NXC-ME, which is not duet. I have some new info though, as this diagnostic message came from the NXC-ME with only one DMS attached:
    Line 1 (14:09:46):: nPushCount= 2
    Line 2 (14:09:46):: nReleaseCount= 2
    Line 3 (14:09:49):: nPushCount= 3
    Line 4 (14:09:49):: Resending to 6003 resend count = 10 (latency=4)$0A
    Line 5 (14:09:49):: nReleaseCount= 3
    Sometimes the Resending to string comes up several times before it gives up- this is when the release fails. I'm not sure what this means though.

    Thanks, Marc
  • ericmedleyericmedley Posts: 4,177
    m_hodel wrote: »
    Thanks Joe,
    Yes, I am pushing the physical button. And, my mistake, I did not test on a NI-700 (no ICS!) but on an NXC-ME, which is not duet. I have some new info though, as this diagnostic message came from the NXC-ME with only one DMS attached:
    Sometimes the Resending to string comes up several times before it gives up- this is when the release fails. I'm not sure what this means though.

    Thanks, Marc

    Does this occur when you plug the keypad sraight into the ICSNet port? I'd try that and bypass all the other stuff to isolate the problem.
  • viningvining Posts: 4,368
    Is that your DMS pads device.number 6003? It may not make a difference if its define in that range but I always start my TPs at 10001 and I used to start my DMS pads at 10101. I have no idea what proccesors do internally but maybe they don't like having devices declared in that range.
  • ericmedleyericmedley Posts: 4,177
    vining wrote: »
    Is that your DMS pads device.number 6003? It may not make a difference if its define in that range but I always start my TPs at 10001 and I used to start my DMS pads at 10101. I have no idea what proccesors do internally but maybe they don't like having devices declared in that range.

    I've had them assigned anywhere from 300 to 11000 before. I don't think it much matters. It's more of a convention. I could be wrong.

    I'm wondering if he has a cable plugged in more than one port on the hub (loop) or something. I've seen this before on an IP network. IP packest were all being doubled and it was a nightmare.
  • Thanks for all of the replies. Right now I am testing with a single DMS plugged directly into the ICSNet port of my NXC-ME via a 3ft long cable. I am testing with the terminator in place in the 2nd port on the DMS (recommended) and also without. The latency error that I get is not consistent. Sometimes I can make 10 push/release pairs with no problem, then it misses the release. It never misses the push. I have tried this with several keypads to isolate that way. I hate intermittent problems. I will post again if any new info comes to light. Once again, thank you all for your help.
  • Sorry forgot one thing. Sometimes if it misses the release, and I push the button again, the release comes, followed directly by the push. Like the release was waiting in a queue or something.
  • viningvining Posts: 4,368
    ericmedley wrote:
    I'm wondering if he has a cable plugged in more than one port on the hub (loop) or something. I've seen this before on an IP network. IP packest were all being doubled and it was a nightmare.
    It's not uncommon for a network to be designed with reduntant paths and create a complete loop if you will but that should be addressed by using managed switchs and properly setting the spanning tree configuration. At least that's my recollection of how that should be addressed.

    I don't know if what's shown in the code is all that's defined but you could change the virtuals d:p:s just in case that d:p:s is already in use some where else. Also try changing the channel number, you never know, it might help.

    I vaguely remember having a problem once when using a module and when I pushed any button below channel 40 I would get a double push and pushes above worked fine. Never did figure that out but I think the comm module was locked and I felt that was the only placed left that could have caused this issue. Another reason I hesitate to use locked modules.
  • viningvining Posts: 4,368
    Maybe you should try a longer cable. It used to be with network cable you needed at least a 3' cable to eliminate refelctions in the cable between active equipment. Who knows mybe the same could apply with the ICSNET.
  • Conclusion

    OK, here is what I learned: I was seeing the duplicate pushes in the diagnostic window of studio. This apparently has to do with the DMS IMS module, and doesn't affect the action of the button events. Only one push is processed. (This has been mentioned in another DMS keypad thread). As far as not getting a release, here is what I suspect was happening. I had been updating a variable text address on the main page of the keypad when the button was pressed. I believe this is what was causing the latency errors described above. As I was sending the text update to the keypad, it was trying to send the release to the master. I changed the vol update to occur on the release event, with a WAIT for good measure, and so far so good. I guess I am just too used to all of the new Modero stuff that can take whatever you can throw at it.

    Thanks so much to everyone who helped me with this.
  • Joe HebertJoe Hebert Posts: 2,159
    Thanks for reporting back in. It?s always good to hear the rest of the story.
  • John NagyJohn Nagy Posts: 1,734
    ...Then 8 years go by, and John asks,
    Anyone recall if DUET and PLK-DMS on ICSNET are mutually exclusive?
    Despite all odds, we have a number of systems that still have (many) PLK DMS keypads in use. All is fine with our unified software, until and unless we compile in something using DUET. Then the PLK DMS keypads no longer show up on the Studio Tree, nor do they ever get as far as "wire is good". Compile exactly the same set code WITHOUT the duet item, and the DMS control returns.
    Sound familiar to anyone?

    Massively corner-case, and with care, avoidable, but if someone has any info or a potential cure, that would be nice...
  • sling100sling100 Posts: 123
    John Nagy wrote: »
    ...Then 8 years go by, and John asks,
    Anyone recall if DUET and PLK-DMS on ICSNET are mutually exclusive?
    Despite all odds, we have a number of systems that still have (many) PLK DMS keypads in use. All is fine with our unified software, until and unless we compile in something using DUET. Then the PLK DMS keypads no longer show up on the Studio Tree, nor do they ever get as far as "wire is good". Compile exactly the same set code WITHOUT the duet item, and the DMS control returns.
    Sound familiar to anyone?

    Massively corner-case, and with care, avoidable, but if someone has any info or a potential cure, that would be nice...

    Yes - I've seen this. I have two residential jobs that still have these in (had to replace one last week - thank God for eBay). We changed the projector in the cinema and to check that the cabling was good I tried a duet module and it all failed. Took it out and replaced it with netlinx code and all was fine. Something to do with dynamic device allocation perhaps?

    Simon
  • viningvining Posts: 4,368
    sling100 wrote: »

    Yes - I've seen this. I have two residential jobs that still have these in (had to replace one last week - thank God for eBay). We changed the projector in the cinema and to check that the cabling was good I tried a duet module and it all failed. Took it out and replaced it with netlinx code and all was fine. Something to do with dynamic device allocation perhaps?

    Simon
    FYI, if anyone needs one or more PLK-DMS I probably have 6-8 brand new in box units. I really have to start putting this crap I'll never use on ebay.
Sign In or Register to comment.