Siemens & RMC100

CharlesM

Member
Join Date
Aug 2005
Location
Arkansas
Posts
1,129
I just ran accross a little problem when trying to send a -10000 from WinAC RTX to a RMC100 motion control. When the number gets less than -1255 it shows up in the RMC100 at 65000 something. At first I thought it was a word/int problem in Step 7. But I have the DB setup with int so I should be able to go -32768 to 32767. I can enter -10000 in the event step program in the RMC100 with no problem. So something is happening between the two.

Any ideas?
 
JRW said:
What the heck is an RMC100???
You could always search the web and find 500+ hits.

Charles, the trick is in the offset. Then RMC100 is a 16 bit controller so the position range is 65536. In your case the position range goes from the offset to the offset+65535. This means that if your offset is -100 then the position range goes from -100 to 65435. What you have done it told the controller to go to a position below the offset.

Most of our S7 customers sign extend the numbers coming from the RMC100 to 32 bit numbers which makes working with position coordinates much easier. They write a FC to convert positions to DINT or REAL and back to positions. If you need help with this let me know.
 
Format of the Data Type

CharlesM said:
I just ran accross a little problem when trying to send a -10000 from WinAC RTX to a RMC100 motion control. When the number gets less than -1255 it shows up in the RMC100 at 65000 something. At first I thought it was a word/int problem in Step 7. But I have the DB setup with int so I should be able to go -32768 to 32767. I can enter -10000 in the event step program in the RMC100 with no problem. So something is happening between the two.

Any ideas?
Look at the format of the Data Type in the 2 systems, to see about there is a difference between the format in Siemens and in the RMC100. It is an INT (16-Bit Integers) word you are working with and there can be a difference of the format.

An integer in Siemens has a sign (bit 15) that indicates whether it is a positive or negative integer. The space that an integer (16 bits) occupies in the memory is one word.

I had a similar problem where it was the format of word there was the problem.
 
I really have heard of the product- I was just trying to get under Peter's skin (as they say)- and I wanted to bring the thread back to the top. I follow Peter's responses and threads- they are informative.
 
Thanks Peter,

This is being used to gear two axis. Its a neg number because the axis are going different directions. In a typical machine we use a one to one gearing. 10000 & -10000. The cycle I am using now they need to be able to adjust this gear ratio. For testing I just changed the event step program but now I need to make it a variable. I should be able to change the master settings and get the same result.
 
Ah....

Nothing is happening between the two. Everything is probably OK. It is the same number. The S7 one is displaying the number as a signed number and the RMCWin is displaying the number as a unsigned number. 40000 is equivalent to -25536 = ( 40000-65536 ) in binary. The bit pattern is exactly the same. The S7 can only display signed integers. That is why I suggest that you have some FCs that can convert the numbers to DINT or REAL. If you have a specific field and example it would be easier to explain.

Gearing on a press? We usually recommend synchronized moves for 2 and four post presses. I am not a fan of gearing unless the master is a references that you have no controller over like a feed chain encoder. If you have control over all the axes then a synchronized move works better because the target positions and velocities are much smoother than gearing to an feedback device.

BTW, if you gear one to one by using the numbers 10000 and -10000, don't be surprised if you see the -10000 show up as 55536 ( -10000 + 65536 ) someplace. Normally the RMCWin is smart about how it displays the numbers. It is impossible for the S7 or Step7 to be as aware of the context in which the number is used on our controller.
 
Standard Step7 instruction

Peter Nachtwey said:
Nothing is happening between the two. Everything is probably OK. It is the same number. The S7 one is displaying the number as a signed number and the RMCWin is displaying the number as a unsigned number. 40000 is equivalent to -25536 = ( 40000-65536 ) in binary. The bit pattern is exactly the same. The S7 can only display signed integers. That is why I suggest that you have some FCs that can convert the numbers to DINT or REAL. If you have a specific field and example it would be easier to explain.
Use the standard Step7 instruction DI_R to convert the numbers from DINT to REAL and the instruction ROUND to convert the numbers from REAL to DINT.
You will find the instruction DI_R and ROUND under “converter” in the instruction list at Program Elements.
 

Similar Topics

Hi, I'm setting up a modbus master on an S7-300. It seems to work in OB1 but not when I use it in OB35. Does anyone have any ideas why? Could...
Replies
10
Views
90
The past week we received a new piece of equipment from Germany which utilizes siemens controls. Typically in our company we use A.B. controls for...
Replies
12
Views
322
Hello I have a s7-1200 and I would like to read the tags present in this controller with my controllogix controller. The two controllers don't use...
Replies
5
Views
168
Hi need help why this “failure 5 emergency stop “ appears at every startup in the morning ? Have to shut off main switch at least 10 times on...
Replies
19
Views
319
i have two plc 1. s7-1212dc/dc/dc ip; 192.168.0.1 2. s7-1500 1513-1pn ip; 192.168.3.2 i need to get data from plc1 to plc2. any idea how to do...
Replies
5
Views
132
Back
Top Bottom