Advanced Search

Search Results (Searched for: 7i76e)

  • PCW
  • PCW's Avatar
23 Nov 2024 17:05

Mesa, Linuxcnc with step direction servo's for axis and analog servo spindle.

Category: Basic Configuration

I think the analog sserial channel will be 3

To check:

mesaflash --device 7i76e --addr [card_ip_address] --dbname2 7i77 --readhmid
 
  • mjones@welfab.ca
  • mjones@welfab.ca
23 Nov 2024 16:52

Mesa, Linuxcnc with step direction servo's for axis and analog servo spindle.

Category: Basic Configuration

I have finally managed to get my 4 step/dir axis working, but still having trouble with the analog servo spindle drive. I get errors for addressing for the output
hm2_7i76e.0.7i77.0.1.analogout5 I have tried with .5. I have tried 7i77.0.2.
it keeps saying anything with that address doesn't exist,
  • Aldenflorio
  • Aldenflorio's Avatar
22 Nov 2024 22:00
Replied by Aldenflorio on topic Installing LinuxCnc on and SSD

Installing LinuxCnc on and SSD

Category: General LinuxCNC Questions

The other part I always mess up is after installing.

so I’m going to config a machine with 7i76eu + thcad-2 (I think, whatever model the currently have). So I need to configure the system with plasmac

i alway alway forget how to set plasmac on the system.
  • Bennett
  • Bennett's Avatar
18 Nov 2024 19:37

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

Ah yes I see it now. I have assigned it to a timer, now I'm seeing the 8us request pulse on the scope at 3 volts (is that correct?). No response from the encoder yet and I'm getting this error, I'll have to check the wiring:

 

Here's where I made it to with the .hal thus far for those who may be on a similar path:
# fanuc encoder test .hal

# kinematics
loadrt [KINS](KINEMATICS)

# motion controller
loadrt [EMCMOT](EMCMOT) servo_period_nsec=[EMCMOT](SERVO_PERIOD) num_joints=[KINS](JOINTS)

# hostmot2 driver
loadrt hostmot2
loadrt [HM2](DRIVER) board_ip=[HM2](ADDRESS) config="num_dplls=-1 num_encoders=1 fanuc_chan_0=AA64 sserial_port_0=00000000"

setp hm2_[MESA](BOARD).0.watchdog.timeout_ns 5000000

setp hm2_7i97.0.dpll.01.timer-us -200
setp hm2_[MESA](BOARD).0.fanuc.00.timer-number 1

loadrt pid names=pid.x

# THREADS
addf hm2_[MESA](BOARD).0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf hm2_[MESA](BOARD).0.write servo-thread

# amp enable
net motion-enable <= motion.motion-enabled

# Global PWM setup
setp hm2_[MESA](BOARD).0.pwmgen.pwm_frequency 48000

# Board: 7i97

# Axis: X Joint: 0 Output: 0
# PID Setup
setp pid.x.Pgain [JOINT_0](P)
setp pid.x.Igain [JOINT_0](I)
setp pid.x.Dgain [JOINT_0](D)
setp pid.x.bias [JOINT_0](BIAS)
setp pid.x.FF0 [JOINT_0](FF0)
setp pid.x.FF1 [JOINT_0](FF1)
setp pid.x.FF2 [JOINT_0](FF2)
setp pid.x.deadband [JOINT_0](DEADBAND)
setp pid.x.maxoutput [JOINT_0](MAX_OUTPUT)
setp pid.x.error-previous-target True

# joint-0 enable chain
net joint-0-index-enable <=> pid.x.index-enable
net joint-0-index-enable <=> joint.0.index-enable
net joint-0-index-enable <=> hm2_[MESA](BOARD).0.encoder.00.index-enable

net joint-0-enable <= joint.0.amp-enable-out
net joint-0-enable => pid.x.enable
net joint-0-enable => hm2_[MESA](BOARD).0.pwmgen.00.enable

# PWM Generator setup
setp hm2_[MESA](BOARD).0.pwmgen.00.output-type 1 #PWM pin0
setp hm2_[MESA](BOARD).0.pwmgen.00.offset-mode 1 # offset mode so 50% = 0
setp hm2_[MESA](BOARD).0.pwmgen.00.scale [JOINT_0]SCALE

# ---Encoder feedback signals/setup---
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0]ENCODER_SCALE

# position command and feedback
net joint-0-pos-cmd <= joint.0.motor-pos-cmd
net joint-0-pos-cmd => pid.x.command

net joint-0-pos-fb <= hm2_[MESA](BOARD).0.encoder.00.position
net joint-0-pos-fb => joint.0.motor-pos-fb
net joint-0-pos-fb => pid.x.feedback

# PID Output
net joint.0.output <= pid.x.output
net joint.0.output => hm2_[MESA](BOARD).0.pwmgen.00.value

# Encoder Setup
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0](ENCODER_SCALE)
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0

# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loopback iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out

 
  • PCW
  • PCW's Avatar
18 Nov 2024 18:56

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

OK then its just

RX <-- TX
TX --> RX

Though polarity may be either way
Mesa uses the EIA-RS-422/423 standard
where RX+ and TX+ are the inverted data
(for compatibility with RS-423/RS-232)
  • azax
  • azax
18 Nov 2024 18:28 - 18 Nov 2024 18:32

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

The drive is using RS-422, and I think it operates in Full Duplex (bidirectional) mode.
  • PCW
  • PCW's Avatar
18 Nov 2024 18:12

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

Note sure, the drive shows a full duplex connection
Is it full or half duplex?
  • azax
  • azax
18 Nov 2024 17:44

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

thank you Peter , 
I want to confirm my understanding. Are the connections in this image correct as you mentioned, or did I misunderstand?
 
 
  • PCW
  • PCW's Avatar
18 Nov 2024 16:46

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

The timer number setup is via a parameter
probably something with "fanuc" and "timer" in it's name
  • Bennett
  • Bennett's Avatar
18 Nov 2024 16:25 - 18 Nov 2024 16:43

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

Yes I have a digital oscilloscope, set it up at the machine today so that should be helpful. Looking at the pins, here's what's available.

 

Also, unsurprisingly no output from the serial port  with the current configuration.
  • PCW
  • PCW's Avatar
18 Nov 2024 15:17

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

I would try setting up the mesa-modbus component

The 7I76E has an RS-485 interface but does require bias
resistors and the proper connections to work properly:

7I76E

RX- TX- --> A  (220 pullup to +5V)
RX+ TX+ --> B (220 pulldown to GND)

Later cards like the 7I96S Rev E and 7I76EU do no required the pullups/pulldowns
  • azax
  • azax
18 Nov 2024 11:48 - 18 Nov 2024 11:53

problem while connecting the MESA 7i76e card to RS422 modbus-RTU and servo drive

Category: Driver Boards

Hello everyone,
I am new to using LinuxCNC and the Mesa 7i76e.After connecting the Mesa 7i76e and the L7S servo drive using Modbus-RTU, I followed the connection setup as mentioned in this link:
forum.linuxcnc.org/27-driver-boards/3328...6e-with-uart?start=0

I also used the following bitfile:

freeby.mesanet.com/7i76e_7i76x1_PktD.bit

and I flashed it using Mesaflash.Next, I attempted to communicate with the L7S servo drive using the Mesa card and LinuxCNC. I connected the servo drive to the Mesa card and then connected it to a computer via Ethernet.I followed the codes provided at the bottom of this link:

linuxcnc.org/docs/stable/html/drivers/me...us.html#_quick_start

However, I modified the configuration from 7i96s to 7i76e. I calculated the CRC from google and tried sending an inertia code from terminal . my code like this :
#! /bin/bash
# First setup the DDR and Alt Source regs for the 7I96
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x1100=0x1F800
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x1104=0x1C3FF
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x1200=0x1F800
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x1204=0x1C3FF
# Next set the baud rate DDS's for 9600 baud
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6300=0x65
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6700=0x65
# setup the TX and RX mode registers
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6400=0x00000A20
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6800=0x3FC0140C
# Reset the TX and RX UARTS
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6400=0x80010000
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6800=0x80010000
# load two 8-byte modbus commands:
01 05 00 00 5A 00 F7 6A
11 03 00 8C 00 01 47 71
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6100=0x8C000311
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6100=0x71470100
# Command the TX UART to send the two 8 byte packets
mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6200=0x08
#mesaflash --device 7i76e --addr 10.10.10.10 --wpo 0x6200=0x08
sleep 1
# display TX Mode
mesaflash --device 7i76e --addr 10.10.10.10 --rpo 0x6400
# display the RX mode reg, RX count, and the data
mesaflash --device 7i76e --addr 10.10.10.10 --rpo 0x6800
mesaflash --device 7i76e --addr 10.10.10.10 --rpo 0x6600
mesaflash --device 7i76e --addr 10.10.10.10 --rpo 0x6500
mesaflash --device 7i76e --addr 10.10.10.10 --rpo 0x6500

During testing, I noticed that when I send values, the L7S servo drive responds with unintelligible numbers or data that I cannot interpret.
 
Could the issue be in the transmission process I followed, or is it a hardware connection problem? For example, do I need a converter from RS-422 to RS-485?I would appreciate any help. Thank you! 
  • PCW
  • PCW's Avatar
17 Nov 2024 23:34

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

You need to also set the FANUC interface timer to  timer you  have setup
(like timer 1) I don't know the name of the pin off hand but listing
all the fanuc pins should find it. Do you have a oscilloscope available?

With the AA64 setup you should get a 8 usec request pulse (+ to REQ+ and - to REQ-)
at the servo thread rate, The encoder should respond with 77 bits of data on the +/-
DATA lines

Note that the default AA64 setup is for a 64K count/turn encoder so wont be right
but should show some data. The correct setup for your 1m count/turn encoder
would need the appropriate setup string

 
  • Bennett
  • Bennett's Avatar
17 Nov 2024 23:10

Fanuc Serial Pulse Coders - Red cap servos, mesa 7i76e, how to?

Category: Driver Boards

Thanks, I have experimented with the polarity of the data and request lines with no changes. Here's where I left off in the .hal based on what I could find here on the forum. I think I have added the initialization of DPLL but not sure about setting the timer.
# Fanuc Encoder Test .hal

# kinematics
loadrt [KINS](KINEMATICS)

# motion controller
loadrt [EMCMOT](EMCMOT) servo_period_nsec=[EMCMOT](SERVO_PERIOD) num_joints=[KINS](JOINTS)

# hostmot2 driver
loadrt hostmot2
loadrt [HM2](DRIVER) board_ip=[HM2](ADDRESS) config="num_dplls=-1 fanuc_chan_0=AA64 sserial_port_0=00000000"

setp hm2_[MESA](BOARD).0.watchdog.timeout_ns 5000000

setp hm2_7i97.0.dpll.01.timer-us -100

loadrt pid names=pid.x

# THREADS
addf hm2_[MESA](BOARD).0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf hm2_[MESA](BOARD).0.write servo-thread

# amp enable
net motion-enable <= motion.motion-enabled

# Global PWM setup
setp hm2_[MESA](BOARD).0.pwmgen.pwm_frequency 48000

# Board: 7i97

# Axis: X Joint: 0 Output: 0
# PID Setup
setp pid.x.Pgain [JOINT_0](P)
setp pid.x.Igain [JOINT_0](I)
setp pid.x.Dgain [JOINT_0](D)
setp pid.x.bias [JOINT_0](BIAS)
setp pid.x.FF0 [JOINT_0](FF0)
setp pid.x.FF1 [JOINT_0](FF1)
setp pid.x.FF2 [JOINT_0](FF2)
setp pid.x.deadband [JOINT_0](DEADBAND)
setp pid.x.maxoutput [JOINT_0](MAX_OUTPUT)
setp pid.x.error-previous-target True

# joint-0 enable chain
net joint-0-index-enable <=> pid.x.index-enable
net joint-0-index-enable <=> joint.0.index-enable
net joint-0-index-enable <=> hm2_[MESA](BOARD).0.encoder.00.index-enable

net joint-0-enable <= joint.0.amp-enable-out
net joint-0-enable => pid.x.enable
net joint-0-enable => hm2_[MESA](BOARD).0.pwmgen.00.enable

# PWM Generator setup
setp hm2_[MESA](BOARD).0.pwmgen.00.output-type 1 #PWM pin0
setp hm2_[MESA](BOARD).0.pwmgen.00.offset-mode 1 # offset mode so 50% = 0
setp hm2_[MESA](BOARD).0.pwmgen.00.scale [JOINT_0]SCALE

# ---Encoder feedback signals/setup---
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0]ENCODER_SCALE

# position command and feedback
net joint-0-pos-cmd <= joint.0.motor-pos-cmd
net joint-0-pos-cmd => pid.x.command

net joint-0-pos-fb <= hm2_[MESA](BOARD).0.encoder.00.position
net joint-0-pos-fb => joint.0.motor-pos-fb
net joint-0-pos-fb => pid.x.feedback

# PID Output
net joint.0.output <= pid.x.output
net joint.0.output => hm2_[MESA](BOARD).0.pwmgen.00.value

# Encoder Setup
setp hm2_[MESA](BOARD).0.encoder.00.scale  [JOINT_0](ENCODER_SCALE)
setp hm2_[MESA](BOARD).0.encoder.00.counter-mode 0
setp hm2_[MESA](BOARD).0.encoder.00.filter 1
setp hm2_[MESA](BOARD).0.encoder.00.index-invert 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask 0
setp hm2_[MESA](BOARD).0.encoder.00.index-mask-invert 0

# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loopback iocontrol.0.emc-enable-in <= iocontrol.0.user-enable-out

Thanks!
  • dbtayl
  • dbtayl
17 Nov 2024 20:14 - 17 Nov 2024 20:16

Strange motion offsets in one direction on one axis

Category: General LinuxCNC Questions

Checked a few things- still need to check filddling with error limits on the servo (requires me to dredge up and set up a Windows PC by the mill- servo software doesn't play nice with WINE):
  • "Differential" noise isn't quite as bad as it initially looks- yes, still awful, but mostly the noise between the A+/A- pins at the servo end is in phase. The high-frequency noise that is out of phase is well below the minimum step time (750 ns). So... awful, but I think "OK". At least seems less likely to be the problem. See picture with math in it, measured at the end of the cable right where it would connect to the motor.
  • Tying the A- pin to GND (single-ended signals instead of pseudo-differential) mostly just gives different noise, similarly bad. See picture without math in it, measured at the end of the cable right where it would connect to the motor.
  • The noise gets far worse when I disable the e-stop on the machine. The e-stop removes power from the spindle drive and servos, so could be either one- though disconnecting the servo power plugs individually had no impact on noise. Spindle is a DMM DYN4 with all the recommended filtering on the power inputs, but still could be a problem.
  • Drive strength seems OK- the 0-5V transitions are really sharp.
  • Connectors do tend to be the bane of happiness (or at least reliable signals), but they seem to check out OK. Crimps all seem good (can pull on them with no movement), soldered joints all look fine, connectors are clean, secure, and haven't been exposed to any contaminants. All signals are reading ~0.3 ohms from the end of the cable to the screw terminal on the 7i76E, which is maybe 0.1~0.2 ohms higher than I get just touching the DMM leads together. I retorqued the screw terminals, which made no difference.
  • I disconnected the servo from the leadscrew and turned it by hand. It appears to be slightly bent- not enough that it's hard to turn with my fingertips poking on the coupling, but definitely goes through phases of being easier/harder to turn. Might replace that on principle since it's easy to do and "not right", but it's not obviously the issue.
Will test removing spindle power to see if that's the signal noise issue, and also see if powering the 7i76E from an isolated 5V supply impacts anything. Should've tested those before posting this, but they just occurred to me now. (also changing the motor error threshold)

Thanks all for the help, even though it's not AFAICT LinuxCNC related! Really helps to have outside eyes on problems when your head is in the weeds.
Displaying 166 - 180 out of 456 results.
Time to create page: 1.019 seconds
Powered by Kunena Forum