bartvandiepen Posted September 21, 2009 Share Posted September 21, 2009 Good morning DAQFactory, I'm using DAQFactory for 2 years now and delivered several project to customers. Our DAQ application communication to a PLC device, this device communicates modbus. Up to now we communicate to a Eurotherm OPC server which was responsible for the modbus communication to this PLC. We experienced some communication problems to the Eurotherm OPC server, and therefore we've decided to communicate directly from DAQ to the PLC using modbus. So this was a project itself, adapting the communication structure for all the channels. This goes very well up to a few modbus adresses. After hours of debugging why it was not possible to retrieve the value of these adresses I've found several bugs or unexepted behaviour of DAQFactory. I report these items and hope that it can be solved in the next release. Item 1: There are a lot of modbus functions implemented in DAQFactory, but there is not a good explanation about the differences between them. It was try and error for me to found out which one works. Item 2: If there is one channel with modbus adress > 30000, all the modbus adress needs to count up with 1 digit (+1). When you delete the channel with modbus > 30000, then all the channels are looking to the wrong modbus address!!! When you don't know this it can take you hours, and you may have changed parameters in you're PLC which should not be changed! Item 3: I had a mix of the following modbus adresses, 0-10000, >10000 and >30000. I had the modbus adresses 0-10000 working prefectly, but the 10274 and 10242 did not work. I found out after hours of debugging that DAQFactory deletes the first 2 digits (probably because of the adress > 30000, there is something written in the HELP about this). This means DAQ communicates with modbus address 272 and 242 to my PLC. This could be dangerous because I was changing parameters which I didn't know! I had to download my backup to the PLC because parameters where changed, but I could not find out which ones. It was also strange that the adress 0-10000 works without any problems, I expected that DAQ also delete the first 2 numbers for these adresses. Item 4: Probably DAQ autodetects how to deal with the modbus adresses (the HELP describes there are 2 different modbus documents which are common used). It detects if there is a modbus adress >30000, but this detection is only performed during start up. Not after applying a changed channel configuration. That means you can have a DAQ application running perfectly, but after a restart NOT! This behaviour cost me also a lot of time! Item 5: I found a bug in DAQ with my runtime (see attachment) and the use of modbus. When I changed any to an illegal value the whole modbus table is moved 1 digit!!! You can simulate this with the runtime I've attached. Hopefully you understand the problems I had, Kind regards, Bart van Diepen Pro Control B.V. run1_v8_0_failure.ctl Link to comment Share on other sites More sharing options...
This topic is now archived and is closed to further replies.