If it's pinging, you either need to run higher octane fuel, or retard the timing slightly. If you have an adjustable vacuum advance, you could take some of the advance out of it.
When does it run rich? If it's at idle, just turn the idle air screw in a bit. If it's at cruise speed, that is only adjustable by changing the jet in the carb.