brianafischer

Atlas Copco OpenProtocol

27 posts in this topic

I am not sure that this is the correct forum, but since we will be using a ControlLogix PLC I posted here. I am looking for drivers and/or example source code for both PC and AB PLC based systems that use the Atlas Copco Open Protocol to speak to PowerFocus torque controllers over Ethernet. Any leads/help/advice would be appreciated. Thanks for the help. Edited by brianafischer

Share this post


Link to post
Share on other sites
Do you have any details on the protocol, manuals, or anything? I couldn't seem to find websites even What type of Controllogix Ethernet module do you have? The ENBT uses Ethernet/IP. The EWEB module has an additional socket interface for either TCP or UDP.

Share this post


Link to post
Share on other sites
TW, thanks for the quick reply. I have attached all of the resources that I was given. We are using an ENBT module. PowerFocusDocs.zip

Share this post


Link to post
Share on other sites
Wife says she's hungry and ready to go to Saturday breakfast but at first glance I'm going to say that this is a job for the 1756-EWEB module. Looks like it communicates on port 4545 using TCP with messaging commands. The ENBT can't do this. Do you already have the ENBT or is getting the EWEB module an option. What other communications does the Ethernet module have to support? There is another gentleman on this forum who actually has much more experience using the open socket interface. I have only used it to print to Ethernet printers but I think he will say the same thing. There may also be some third party devices that can do this but I have never used them.

Share this post


Link to post
Share on other sites
TW, I am actually trying to help out a colleague with this. He is also trying to print to a Toshiba B-SX4 barcode printer over ethernet. I agree that the EWEB module sounds like the correct tool for the job. I believe that the ENBT module will be used to put the PLC on the plants network and talk to their supervisory system so it is necessary. Any more info/advice would be welcome! Thanks

Share this post


Link to post
Share on other sites
The EWEB may be able to communicate with the supervisory system depending on the setup. If it goes through RsLinx, is RsView or something like that then the EWEB can do it. The big communications that the EWEB is missing is class 1 messaging (you can't put Ethernet modules below it in the I/O tree of RsLogix 5000). There are other differences but don't have anything in front of me to look at. As long as threre is not any actual Ethernet I/O I would say definately go with the EWEB of the information given so far. It will take care of your socket connections and you get a great Web Server for free. It is also capable of communicating directly with VB or any other software that can issue a HTTP request (no RsLinx needed) and transfer 2500 tags at a time in the form of an XML file which is easy to parse in VB. The EWEB is not the most popular Controllogix module but it is probably has the most unrealized potential of the Controllogix platform and is by far my favorite. The only thing that keeps it from being used more is many PLC programmers are reluctant to cross the line to the computer side. You can build web pages on it to view just about anything from production data to diagnosing problems with machines. No special software needed such as RsLinx or any type of interface on the PCs. As long as they can physically get to it from the network and have IE they are ready to go. And it does not have to be a PC. Anything with a web browser will work from Windows CE pocket computers to wireless Palm Pilots

Share this post


Link to post
Share on other sites
Here is slightly newer version of one of the documents (just one month or so). we have never done PF3000 data collection through ENET on a PLC. We always went for PC when collecting data from PF3000. I would be interested to see it work PLC but with my schedule, there is just not enough time for this. OpenProtocol_rev9_world_02.zip

Share this post


Link to post
Share on other sites
Hi forum members. I would have some questions according to atlas copco openprotocol (v5.1). I am working on a C# (.NET) based communication interface to this protocol, but i have run into a problem. When i've tried to establish a connection with a powerfocus 3000 (sw version>3.0) the hw doesn't answer. Here is what i've tryed: open the socket (192.168.0.1:4545) send the following ascii digits (based on the protocol description) : 00200001001 0(the last 0 is ascii 0x0 -null termination) but i dont get an answer, neither (communication start acknowledge or command error.) Could somebody tell me please what did i do wrong ? Or if you have a working example of communication data (how to establish a connection (what to send to the tool?)) Thanks in advance

Share this post


Link to post
Share on other sites
I could be way out in left field here but I have never seen an IP address like this before (192.168.0.1:4545)

Share this post


Link to post
Share on other sites
The IP is the ip of the tool & the port is 4545. (from the powerfocus OpenProtocol 5.1 User manual - posted in this thread earlier). I' ve got a tip - that the Spare part (user manual page 11.) shouldn't be filled with 0x0 - since that character is used to signal the end of message. we will try that too.

Share this post


Link to post
Share on other sites
there ware many revisions of the document. here is the most current version (19) and addresses changes to W3 (world 3 release). it is from 2003 but i got it only few days ago. according to our Atlas Copco contact this is current version.... OpenProtocol_V19_W3.zip
1 person likes this

Share this post


Link to post
Share on other sites
blackboxx is right about writing convention for address:port but to help with rest of the question - i don't think message like 002000010010 is valid... i'm rusty on this one but if my memory is any good this message is waaaay too short..... only header is 20byte long so minimum message length is 21 byte (header plus one byte for NUL). i guess you are trying to send message 0001 (communication start as explained in 5.3.1). that message alone must be 21 byte long or something like 0020-0001-000000000000-# header: i inserted dashes to make it more readable. header alone is 20 byte long (manual shows first eight only, followed by Rev and Spare which should be zeros, that is the third part of the message above and it countains 12 zeros..). data block: there is no data block (data block length is zero...). terminator: i presented null character as # at the end of the telegram, (21st byte). ... now if using RS232, this whole thing should be between STX and ETX bytes as well. ... if you are using ethernet, get decent analyzer like http://www.ethereal.com/download.html also call Sweden, they have nice little program that communicates with PF3000 and has lots of goodies (for example it shows each message in ASCII and HEX). ... so the message 0020-0001-000000000000-# will actually be string of hex values like this: 30 30 32 30 30 30 30 31 30 30 30 30 30 30 30 30 30 30 30 30 00 ... beware that first 4-byte group in the header (0020 in example above) is actual MESSAGE LENGTH (all bytes in the message are counted except the last NUL character). so if you are sending VIN number (ID) for example and you want to send less than 25charactes inside data field (MID=50, see 5.8.1), then you must adjust the first part of the header to indicate proper length. in the manual they show that this is 0045 but that is only valid if you actually sent all 25 characters of the VIN. you can shorten it for example, let's say you want to send only string ABCDEFG as VIN. this means that DATA part is only 7 bytes long. since header is 20-byte,message length is 20+7=27byte or 0027-0050-000000000000-ABCDEFG-# which in HEX, would be: 30 30 32 37 30 30 35 30 30 30 30 30 30 30 30 30 30 30 30 30 41 42 43 44 45 46 47 00 hope this helps

Share this post


Link to post
Share on other sites
Thanks a lot for the response, in the meantime i had an opportunity to test the sw and the result was that the the spare part from the header shouldn't be empty (i had ascii 0x0 's there HEX = 0 's). i have tried to fill that with spaces ' ' and the hw started answering. Edited by blackboxx

Share this post


Link to post
Share on other sites
that's the thing with Atlas Copco... they don't have a half decent download section on their website, manuals are not good, and it just so happens that some things are not clear or not even mentioned. i don't have problem that they didn't foresee everything when they created product. i can even live with poor manuals and website. but my biggest complaint is that they are so quick to make changes - after product is released - without ensuring compatibility between versions... and they make a lot of revisions...! in fact, right now i have an issue with the API driver for the PowerMACs. project was created a while ago by somone else and installation file of the PowerMAC API has been mistakingly overwriten with the newer version (files with same name - version number should be part of the file name). now i'm doing very minor change but only have that newer API installed on my PC. application still compiles but it doesn't work. when compiled program is installed on target pc (machine) which does have older API, error comes up during start. I will probably get it in next day or two but one way or another, I still have to plan another trip to the plant...

Share this post


Link to post
Share on other sites
Does anybody have the Powerfocusapi.api file? I am looking for this Application programming Interface.

Share this post


Link to post
Share on other sites
i have done communication with plc and atlas over ethernet. dont worry if you have API interface you can do easily with Vb...

Share this post


Link to post
Share on other sites
Hopefully this post hasn't gone too dormant. We're about to do a project here that will have 6 Atlas Copco Nutrunners in communication with a ControlLogix PLC over ETH/IP I've written LabVIEW code that works with Atlas Copco's Open Protocol over TCP/IP It was a little tricky to get it going at first. But once it was working, I could simultaneously communicate and receive values from three units all running at once. Presumably the same code would work with more units as LabVIEW is able to execute threads in parallel. What I'm worried about is how the PLC will handle the simultaneous communication with multiple units. Our Atlas Copco rep here warned us NOT to attempt to use ETH/IP and a PLC to capture the torque data. But our customer has insisted it be done this way. Has anyone here had experience with this kind of setup? If so, could tell me what kinds of problems you had to overcome?

Share this post


Link to post
Share on other sites
Need Support and sample for reading Torque data from power focus 3000/4000. Iam using C#.Net here is my sample program this works fine i want to know the format to get torque data . i have 4 batch count and i need to read 4 Torque data and ok signal and final n*ok signal. this is my sample program this works fine i send 0001("00200001000000000000#") and i receive "00570002 010000020003" .this works fine . I want to know the format for. 1) reading Tourque data . 2) Current Batch no. 3) Ok,NOK and n*Ok signal from powerfocus 3000/4000. my sample program here. Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); IPEndPoint ip = new IPEndPoint(IPAddress.Parse("10.126.225.44"), 4545); String szData ="00200001000000000000#"; byte[] byData = Encoding.Default.GetBytes(szData);//System.Text.Encoding.ASCII.GetBytes(szData); int sent = server.Send(byData, SocketFlags.None); byte[] bytesFrom = new byte[1025]; int iRx = server.Receive(bytesFrom); string dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom); MessageBox.Show(dataFromClient.ToString());

Share this post


Link to post
Share on other sites
r u sure do you really want open protocol bcoz we can configure what parameters u want to read in plc in powerfocus and can read entire data in clx plc through ethernet port......u have to configure generic ethernet type and assign input output size

Share this post


Link to post
Share on other sites
I have done an application with a compaclogix and a power focus 3000, I did connect the serial port #1 of the power focus to a serial to ethernet gateway , I'm doing this interface because is easier to get the strings from the gateway to the PLC and for this specific aplication we are not using visual basic or another software. Regards

Share this post


Link to post
Share on other sites
Could you send me details of how to connect PF3000/PF4000 to ControlLogix Using Ethernet/IP or serial

Share this post


Link to post
Share on other sites

Dear Experts,

                           Am New to working Atlas Copco - Power Focus Tool . In that Am Using Ab  L75 - Control Logic Plc . So i want to Communicate with Atlas Copco To plc With Ethernet Communication . After Establishing Communication , I want to Read & write The datas. . I want to check Healthy Check Of tool and Fault Code after i want to read The torque and Angle Of Tighting tool . . So how to do this.. Please Help this support. If any one having Plc Coding mean Please share with me .. Its Very helpful .. 

Thanks & Regards,

Arasan..

Share this post


Link to post
Share on other sites

Hello Guys,

Does anyone knows how to connect Power macs 4000 to ControlLogix Using Ethernet/IP ?

As far as I know,  have to create a generic Ethernet module in RSlogix.  What should be comm. Format,  Assembly instance and size for Input, Output and Configuration ?

Can anyone send me EDS file for same?

Thanks in advance

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now