Home AMX User Forum AMX Technical Discussion

RS232 received data on slave processors, are not getting back to the master processor

I've been experiencing some problems on my current project, where RS232 received strings on a variety of slave processors aren't getting back to my master processor. If I connect directly to the slave processor (via IP or serial) I can see the strings coming in, when connected to the Master I cannot. My modules linked to these slave RS232 ports all run on the Master processor and so don't work correctly when they don't see the received strings.
All other control over the slave processors (IR, Relay etc) is fine though.....

A quick fix was to reboot the power on the slave processor, then after an undetermined period of time the master processor cannot see the received RS232 data.

The master processor is a 4100, there are 12 slave processors, 8 x 3100s and 4 x 900s.

All processors have up to date firmware, are connected via managed Netgear switches, are all on the same VLan.

The URL table on the master processor is empty, and each slave processor has ONLY the IP address of the master processor within it's own URL table. All processors have independant IP addresses and system numbers, and have gateway and DNS network values completed.

All code runs on the master processor, the slave processors run no code.

any ideas?

Comments

  • viningvining Posts: 4,368
  • vining wrote: »

    thanks Vining, the problems reported in that thread show the Serial ports and all other device ports failing. My problem seems to be the transfer of data between systems linked via "master 2 master". None of my Device ports have failed.

    I might try the hotfix firmware as I haven't got anything to lose.... my only other option at the moment is to schedule a nightly reboot on the slave processors.
  • ericmedleyericmedley Posts: 4,177
    I typically do as you describe in my systems with more than one master. I put all my code on one main master. The others are just slave device extenders for all intents and purposes.

    However, I have found some occasions where the situation you describe existed. I suppose it has to do with how the module was written. What I typically do in those cases is put a small program with the module on the local master that connects directly to the device. Then address the module's virtual device on the main master as well and run the control code from there.

    I've found that commands / events from virtual devices seem to travel over M2M a little more reliably myself.
  • markbsuremarkbsure Posts: 44
    ericmedley wrote: »
    I typically do as you describe in my systems with more than one master. I put all my code on one main master. The others are just slave device extenders for all intents and purposes.

    However, I have found some occasions where the situation you describe existed. I suppose it has to do with how the module was written. What I typically do in those cases is put a small program with the module on the local master that connects directly to the device. Then address the module's virtual device on the main master as well and run the control code from there.

    I've found that commands / events from virtual devices seem to travel over M2M a little more reliably myself.

    this is the first time i've ever seen this problem, in about 8 years of AMX programming. My modules have changed alot over this time but nothing dramatically in the last year, and the modules used in this current job with this problem are in use in other similar systems.

    Thanks for your suggested solution Eric, I will try this next time im on site.
    So if my module is running on my slave processor (system 2 in this example), and I have passed a virtual device of [33001:1:2] into it. I create the same virtual device [33001:1:2] in my source code on my master processor (system 1) and can then send_string, do_push to this virtual device within my master source code, and this will link directly to the module running on my system 2 processor?
  • viningvining Posts: 4,368
    markbsure wrote: »
    thanks Vining, the problems reported in that thread show the Serial ports and all other device ports failing. My problem seems to be the transfer of data between systems linked via "master 2 master". None of my Device ports have failed.

    I might try the hotfix firmware as I haven't got anything to lose.... my only other option at the moment is to schedule a nightly reboot on the slave processors.
    Maybe that wasn't the right thread and I think that thread is actually discussing a couple of diffrerent issues. There was a thread that discussed problems with M2M (with multiple 900s) and a chatting problem that would either lock up or make M2M not work properly. The hot fix I thought from what I think I heard from TS addresses this issue not the 232 comms DEV issue which is most likely the CAP problem. The problem that the hofix corrects also goes away with a reboot and may return but also may not. I would look into especially if things had been working fine. In the thread I linked prior there was also something about the zero_config being disabled to prevent lock ups (M2M?), that I think is another issue but might be worth doing just for the keck of it. Who really cares about zero config anyway?
  • ericmedleyericmedley Posts: 4,177
    markbsure wrote: »
    this is the first time i've ever seen this problem, in about 8 years of AMX programming. My modules have changed alot over this time but nothing dramatically in the last year, and the modules used in this current job with this problem are in use in other similar systems.

    Thanks for your suggested solution Eric, I will try this next time im on site.
    So if my module is running on my slave processor (system 2 in this example), and I have passed a virtual device of [33001:1:2] into it. I create the same virtual device [33001:1:2] in my source code on my master processor (system 1) and can then send_string, do_push to this virtual device within my master source code, and this will link directly to the module running on my system 2 processor?

    Yes, that's how to do it. BTW... You can still upload a file remotely through the main master to the slave. all you have to do is create the file and make a device in the main program along the lines of

    dv_slave_NI_01 = 0:1:2 (or whatever the system number is)

    and then map the device to the program file just like you would a TP or IR file.

    The mapping gets the program file there just fine without having to remote into the slave master (and thus opening another port - unless you've setup a VPN)
Sign In or Register to comment.