Home AMX User Forum NetLinx Studio

Strage channels problems

adysadys Posts: 395
Hi all


I am having a strange problem to turn off channels.

I have a module that turn off some buttons.
In one system instance when sending off commands, it ok.
In other system instance, its not working..

even when I put the commands (for test) like this:

off[10007:20:6, 17]
off[10007:20:6, 17]
off[10007:20:6, 23]
off[10007:20:6, 24]

its not working.

using "control a device" from netlinx 2.7 is working good, with the same parameters exactly.

Any idea?

I am sitting on this few hours and cant see the problem...

( other buttons are turn off as they should, only those buttons are not , maybe its connecting to the port 20 from this module?)

Thanks for any help

Ady.

Comments

  • adysadys Posts: 395
    update:


    Trying to send any off command to this specific port , from this module , is working only in one specific instance of this module in a specific system.

    From 2 other instances from 2 different systems, its not working.

    I have no idea, everything else is working good.
  • adysadys Posts: 395
    update 2:


    I notice that even when I am removing the module from the module list in a specific system, the module still works and compile (taking it from other place?) - first time that I see that it can work like that.

    I this can cause any problem?

    Anyone?

    Thanks

    Ady.
  • bcirrisibcirrisi Posts: 148
    I've had a similar problem with a Module compiling without being included. I removed it completely from the workspace, then exported the projected to a different folder, and it finally compiled without the module. Whenever I have a problem like that, exporting the project seems to help me. Hope this helps.
  • adysadys Posts: 395
    Thanks

    Everything else is working ok, just trying to work with this port is not working... even not when I put a direct address....

    I tested now, and it looks like every module can turn off only the TP that belong to the system that runing on the same master...

    But only on port 20!

    all the rest working ok and all the systems talking with each other (url list )
  • patbpatb Posts: 140
    If you're talking master-to-master you can't use ONLY a D:P:S reference to talk to a device on another master. That device has to be defined in the define_device list or it doesn't even exist to that master. Once it is defined, then you can use the device name or the D:P:S to do an action.

    So here's the question - is the TP that you're trying to control physically defined in the define_device list of the master that you are using?
  • dthorsondthorson Posts: 103
    Check out :
    SET_VIRTUAL_PORT_COUNT

    You have to define that your device can have that many ports first. By default not that many ports are available for a device.

    Also,
    SET_VIRTUAL_CHANNEL_COUNT
    SET_VIRTUAL_LEVEL_COUNT
  • adysadys Posts: 395
    patb wrote: »
    If you're talking master-to-master you can't use ONLY a D:P:S reference to talk to a device on another master. That device has to be defined in the define_device list or it doesn't even exist to that master. Once it is defined, then you can use the device name or the D:P:S to do an action.

    So here's the question - is the TP that you're trying to control physically defined in the define_device list of the master that you are using?



    Are you sure?

    I did it many time before, it is working, I am 99% sure.

    Second, I made a global list and include it in my module for the devices and it didn't help.


    dthorson, I am using SET_VIRTUAL_PORT_COUNT, and including this port


    Somthing is wrong.

    It started with upgrading yesterday to version 2.7, I hope its not connected.

    When I compile my system with the module, somtimes the changes are not runing, cause I didn't load all systems...

    I have to compile all systems and load them, only then its working ok.

    I solved the problem with a message to the central master that holds the url list and its working, but I don't feel good with this module

    even more strange, I removed the module file from all! systems, rename the file, and compile all the project.

    Everything is compiling and runing , and I don't understand how...
    Where its taking the module from???
  • ericmedleyericmedley Posts: 4,177
    adys wrote: »
    Are you sure?

    I did it many time before, it is working, I am 99% sure.

    Second, I made a global list and include it in my module for the devices and it didn't help.


    dthorson, I am using SET_VIRTUAL_PORT_COUNT, and including this port


    Somthing is wrong.

    It started with upgrading yesterday to version 2.7, I hope its not connected.

    When I compile my system with the module, somtimes the changes are not runing, cause I didn't load all systems...

    I have to compile all systems and load them, only then its working ok.

    I solved the problem with a message to the central master that holds the url list and its working, but I don't feel good with this module

    even more strange, I removed the module file from all! systems, rename the file, and compile all the project.

    Everything is compiling and runing , and I don't understand how...
    Where its taking the module from???

    There were several problems with 2.7

    I finally bailed out on it and went back to 2.6. I'll wait for 2.8 or 3.0 or whatever.
  • viningvining Posts: 4,368
    patb wrote:
    If you're talking master-to-master you can't use ONLY a D:P:S reference to talk to a device on another master.
    I think using just D:P:S would be fine since declaring a dev is just a pointer to D:P:S and every event that happens any where in the system is broadcast to every master that is part of that system based on what's contained in the URL list and runs through every master's mainline. If you have have a dev delcared or D:P:S in an event handler that matches something coming in that code should run.

    Of course I would always declare the dev just so I know what I'm looking at.
  • adysadys Posts: 395
    I will get back to 2.6...

    Where can I find it?
    only from support or there is a hidden link anywhere?

    Thanks
  • adysadys Posts: 395
    vining wrote: »

    Thanks, I saw this before.

    I sent them a mail Yesterday, and I am still waiting...

    update - I found 2.6 install file on one of our computers, I will check update if that solve the problem.
  • DHawthorneDHawthorne Posts: 4,584
    vining wrote: »
    patb wrote:

    I think using just D:P:S would be fine since declaring a dev is just a pointer to D:P:S and every event that happens any where in the system is broadcast to every master that is part of that system based on what's contained in the URL list and runs through every master's mainline. If you have have a dev delcared or D:P:S in an event handler that matches something coming in that code should run.

    Of course I would always declare the dev just so I know what I'm looking at.

    It's not though. The local master makes a hidden virtual device, and the master-to-master communications just sync the device and the virtual. You need to declare your device from the other master in the local program. The virtual port and level counts also apply; I had a system with panels that connected to one master, but were declared on another, and the remote master could not address over level eight until I used SET_VIRTUAL_LEVEL_COUNT on the remote master.
  • patbpatb Posts: 140
    Just to clarify - that last post by DHawthorne makes it look like that I said what is quoted.....not true - that's not what I said. I read the post and I was thinking - "wait, I didn't say that". I said the same thing that DHawthorne stated - you must declare the device that you are going to be addressing on the remote system and you need to make sure that the port count is high enough. Do both of those and tell us if it works.
  • patbpatb Posts: 140
    vining wrote: »
    vining wrote:

    I think using just D:P:S would be fine since declaring a dev is just a pointer to D:P:S and every event that happens any where in the system is broadcast to every master that is part of that system based on what's contained in the URL list and runs through every master's mainline. If you have have a dev delcared or D:P:S in an event handler that matches something coming in that code should run.

    Of course I would always declare the dev just so I know what I'm looking at.


    You can use the direct D:P:S reference just fine....provided that you made a device declaration in the define device list. That tells the master that the remote device "exists" and then it can be referenced.
  • DHawthorneDHawthorne Posts: 4,584
    patb wrote: »
    You can use the direct D:P:S reference just fine....provided that you made a device declaration in the define device list. That tells the master that the remote device "exists" and then it can be referenced.

    It's best not to. If it's defined in the program, use the name so you don't have to rip your hair out trying to figure why it doesn't work when the device number gets changed, and you forgot there is a direct reference.
  • patbpatb Posts: 140
    DHawthorne wrote: »
    It's best not to. If it's defined in the program, use the name so you don't have to rip your hair out trying to figure why it doesn't work when the device number gets changed, and you forgot there is a direct reference.


    I agree - it would be silly to use the D:P:S reference when you have the name of the device declared already. But technically it would work, not advisable to do it that way though.
  • adysadys Posts: 395
    the D:P:S reference was just for testing... I managed to solve the problem by sending a message to the central controller, and I am back with 2.6.

    Thanks for the help,

    Ady
  • viningvining Posts: 4,368
    DHawthorne wrote:
    It's not though. The local master makes a hidden virtual device, and the master-to-master communications just sync the device and the virtual.
    You're absolutely right! I set up another master in the shop and did some testing and if you just create an event using just D:P:S numbers w/o 1st defining in define_device it doesn't work at all. At least not in the 3 tests I ran. I thought for sure that wouldn't be necassary but I guess I was wrong. What else is new right!

    I guess the act of defining a device creates the handling buffers and queues that are required for each device to function with event tables and event handlers. There's definitely something going on that's invisible to our eyes.
Sign In or Register to comment.