RS232 received data on slave processors, are not getting back to the master processor
markbsure
Posts: 44
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?
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?
0
Comments
http://www.amxforums.com/showthread.php?7629-NI-3100-Ports(IR-RS232)-sometimes-not-working-and-there-is-no-error-message./page2
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.
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?
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)